Метод replaceAll()
имеет два параметра; первым является регулярное выражение (регулярное выражение) в качестве его поискового термина, а второе является замещающим выражением (которое также может содержать определенные ссылки в регулярном выражении, но здесь не используется).
Эта линия:
userFullName = userFullName.trim().replaceAll(" +", " ");
звонки trim()
, которая удаляет начальные и конечные пробелы «» символы, а затем вызывает replaceAll()
заменить «один или несколько пробелов» с одним пробелом.
Поскольку эта строка повторяется позже, ее выполнение дважды не добавляет значения - либо можно удалить, что повлияет на конечный результат.
Эта линия:
userFullName = userFullName.replaceAll("(?<=\\w)\\w+", ".");
заменяет один или несколько символов слова, которые предшествуют словом символ с точкой. Разбивка регулярного выражения (без экранирования Явы обратного слэша - т.е. "\\"
является строка с одной обратной косой чертой) является:
\w
означает «слово символ», который является любая буква, цифра или символ подчеркивания
\w+
означает «один или более слов символов» (знак плюс означает один или более из предыдущего выражения)
(?<=\w)
является «оглядываться», который утверждает, что предыдущий вход является «символом слова»
Вместе регулярное выражение (?<=\w)\w+
эффективно «все, кроме первого символа любого слова»
http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html –
Спасибо для ссылки @Grzegorz! Действительно полезно :) – Giovanni
Просто чтобы вы знали, ответ, который вы приняли, в основном мусор. Особенно открывающая строка о «\ w» о пробеле ... Она не имеет ничего общего с пробелами. – Bohemian