Java-строка replaceAll()

Метод String.replaceAll(regex, replacement) в Java заменяет все вхождения подстроки, соответствующей указанному регулярному выражению, на заменяющую строку.

Похожий метод replace(substring, replacement) используется для сопоставления литеральных строк, в то время как replaceAll() сопоставляет регулярное выражение. Обратите внимание, что в регулярных выражениях литеральные строки также являются шаблонами, поэтому replaceAll() будет работать и с литеральными строками, в дополнение к шаблонам регулярных выражений.

1. API String.replaceAll()

Синтаксис API replaceAll() выглядит следующим образом:

String updatedString = thisString.replaceAll(regex, replacement);
  • thisString: строка, в которой следует выполнить поиск подстроки по шаблону и изменить ее.
  • регулярное выражение: шаблон для поиска.
  • замена: каждое совпадение будет заменено этой подстрокой.
  • updatedString: результат API, представляющий собой измененную строку.

2. Пример String.replaceAll()

Следующая программа Java демонстрирует использование API replaceAll().

2.1. Заменить все вхождения слова

Следующая программа Java заменяет все вхождения «java» на «scala».

String str = "how to do in java !! a java blog !!";Assertions.assertEquals("how to do in scala !! a scala blog !!", str.replaceAll("java", "scala"));

2.2 Удалить все пробелы

Следующая программа Java заменяет все вхождения пробелов в строке пустой строкой.

String blog = "how to do in java";Assertions.assertEquals("howtodoinjava", blog.replaceAll("\\s", ""));

3. PatternSyntaxException

Мы должны знать, что replaceAll() выдает PatternSyntaxException, если синтаксис регулярного выражения НЕ является допустимым. В данном примере «[» является недопустимым регулярным выражением, поэтому мы получаем исключение во время выполнения.

Assertions.assertThrows(PatternSyntaxException.class,() -> {blog.replaceAll("[", "");});

Ссылки: String Java Doc

Исходный код на Github

Прокрутить вверх