Метод replaceAll
Метод replaceAll заменяет все вхождения
подстроки в строке, которые соответствуют
заданному регулярному выражению, на указанную
строку замены. Сама исходная строка при этом
не изменяется - метод возвращает новую строку.
В первый параметр мы передаем регулярное
выражение (шаблон для поиска), во второй -
строку, на которую нужно заменить найденные
совпадения.
Синтаксис
str.replaceAll(regex, replacement)
В качестве первого параметра выступает регулярное выражение, в качестве второго - строка замены. Если совпадений нет, метод возвращает исходную строку без изменений.
Пример
Давайте заменим все цифры в строке на символ
"*":
public class Main
{
public static void main(String[] args)
{
String str = "a1b2c3";
String res = str.replaceAll("\\d", "*");
System.out.println(res);
}
}
Результат выполнения кода:
"a*b*c*"
Пример
Давайте заменим все гласные буквы на символ
"-":
public class Main
{
public static void main(String[] args)
{
String str = "abcde";
String res = str.replaceAll("[aeiou]", "-");
System.out.println(res);
}
}
Результат выполнения кода:
"-bcd-"
Пример
Давайте удалим все пробелы из строки, заменив их на пустую строку:
public class Main
{
public static void main(String[] args)
{
String str = "1 2 3 4 5";
String res = str.replaceAll(" ", "");
System.out.println(res);
}
}
Результат выполнения кода:
"12345"
Пример
Если в строке замены встречается знак доллара
или обратный слеш, их нужно экранировать.
Давайте заменим все цифры на последовательность
"$":
public class Main
{
public static void main(String[] args)
{
String str = "a1b2c3";
String res = str.replaceAll("\\d", "\\$");
System.out.println(res);
}
}
Результат выполнения кода:
"a$b$c$"
Смотрите также
-
метод
replace,
который заменяет подстроку без регулярных выражений -
метод
replaceFirst,
который заменяет первое вхождение подстроки -
метод
matches,
который проверяет соответствие регулярному выражению -
метод
split,
который разбивает строку по регулярному выражению