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