Java String replace()

API String.replace() ищет буквальную подстроку и заменяет каждое вхождение заменяющей строкой. Поиск подстроки начинается с начала строки, т.е. с индекса 0.

Обратите внимание, что аналогичный метод String.replaceAll() ищет и заменяет все подстроки с использованием регулярных выражений.

1. Метод String.replace()

Метод replace() является перегруженным методом и существует в двух версиях:

public String replace(char oldChar, char newChar);public String replace(CharSequence target, CharSequence replacement);
  • Первый метод принимает типы char. Он ищет в строке указанный oldChar и заменяет каждое вхождение oldChar на newChar.
  • Второй метод принимает типы String. Он ищет в строке указанную целевую подстроку и заменяет каждое вхождение заменой.

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

Следующая программа на Java заменяет все вхождения буквы «o»(строчная) на букву «O»(заглавная).

String message = "Hello world !!";Assertions.assertEquals("HellO wOrld !!", message.replace('o', 'O'));

3. Заменить все вхождения подстроки

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

String message = "Hello world !!";Assertions.assertEquals("Hi world !!", message.replace("Hello", "Hi"));

4. Регулярные выражения не поддерживаются

Регулярные выражения не допускаются в качестве аргументов метода. Если мы используем шаблон регулярного выражения, он будет рассматриваться как литеральная строка.

В следующей программе шаблон регулярного выражения [H] будет соответствовать символу H, если регулярное выражение поддерживается. Но replace() не поддерживает регулярное выражение, поэтому совпадений не найдено.

String message = "Hello world !!";Assertions.assertEquals("Hello world !!", message.replace("[H]", "h"));

5. Значение null не допускается.

'Null' не допускается в качестве обоих аргументов метода. Это вызовет исключение NullPointerException.

Assertions.assertThrows(NullPointerException.class,() -> {message.replace(null, "O");});Assertions.assertThrows(NullPointerException.class,() -> {message.replace("o", null);});

Ссылки:
Документация по строкам Java

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