Java String replaceFirst()

String.replaceFirst() в Java заменяет первое вхождение найденной подстроки, которая соответствует заданной аргументной подстроке(или регулярному выражению ), на указанную заменяющую подстроку. Процесс сопоставления подстроки начинается с начала строки(индекс 0) и заканчивается после того, как будет найдено первое совпадение, в противном случае — до конца строки.

Обратите внимание, что мы не можем передать null в качестве аргументов метода, но можем передать пустую строку.

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

Синтаксис replaceFirst() следующий. Он ищет подстроку regex и заменяет ее заменяющей строкой. Регулярное выражение может быть как обычной строкой, так и регулярным выражением.

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

String replaceFirst(String regex, String replacement);

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

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

String str = "howtodoinjava";String newStr = str.replaceFirst("java", "JAVA");System.out.println(newStr); //howtodoinJAVA

Мы также можем использовать регулярное выражение следующим образом:

String string = "how to do in java";String updatedString = string.replaceFirst("\\s", "-");System.out.println(updatedString); //how-to do in java

3. Экранирование специальных символов с помощью двойной обратной косой черты

Хотя мы можем передать регулярное выражение в качестве шаблона подстроки для сопоставления, исходная строка может содержать специальные символы, которые мы не хотели бы учитывать при сопоставлении с шаблоном.

В регулярных выражениях есть символы, имеющие особое значение. Это метасимволы:

\ ^ $ . | ? * + {} []()

Для пропуска таких метасимволов используйте двойную обратную косую черту(\\).

String string = "how+to+do+in+java";String updatedString = string.replaceFirst("\\+", "-");System.out.println(updatedString); //how-to+do+in+java

4. «Нуль» не допускается.

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

String updatedString = string.replaceFirst(null, "-");

Вывод программы.

Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.isEmpty()" because "this.pattern" is null

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

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