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