Как заменить первое вхождение строки в Java

Я хочу заменить первое вхождение строки следующим образом.

  String test = "see Comments, this is for some test, help us"

** Если тест содержит следующие данные, они не должны заменять

See Comments, (with space at the end) See comments, See Comments**

Я хочу получить вывод следующим образом,

 Output: this is for some test, help us

Заранее спасибо,

 user132957205 июн. 2012 г., 14:40
 brimborium05 июн. 2012 г., 14:46
Или вы можете посмотреть на документациюString и найтиreplaceFirst()...
 Sridhar-Sarnobat11 сент. 2016 г., 06:14
Google скажет вам, как заменить первое вхождение REGEX, а не строку.
 hovanessyan05 июн. 2012 г., 14:42
Вы можете выполнить поиск непосредственно по вашему вопросу или немного перевести взгляд вправо от этого комментария и проверить СВЯЗАННЫЕ вопросы ...

Ответы на вопрос(6)

Вы можете использовать следующую инструкцию, чтобы заменить первое вхождение строки.

String result = input.replaceFirst(Pattern.quote(stringToReplace), stringToReplaceWith);

этоссылка на сайт имеет полную программу, включая тестовые случаи.

|improve this answer answered Apr 16 '17 at 11:18 Hari KrishnaHari Krishna 1,042924
 03 авг. 2018 г., 14:21
Это лучший ответ, потому что он также обрабатывает символы регулярных выражений и не зависит от внешних библиотек.

использованиеsubstring(int beginIndex):

String test = "see Comments, this is for some test, help us";
String newString = test.substring(test.indexOf(",") + 2);
System.out.println(newString);

OUTPUT:

this is for some test, help us

 26 мая 2017 г., 03:16
Подождите, что если строка, которую вы хотите заменить, не находится в начале входной строки?

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

org.apache.commons.lang3.
  StringUtils.replaceOnce("coast-to-coast", "coast", "") = "-to-coast"
Javadoc https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html#replaceOnce-java.lang.String-java.lang.String-java.lang.String-

Существует даже версия, которая нечувствительна к регистру (что хорошо).

Maven
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.7</version>
</dependency>
Credits

Мой ответ - увеличение:https://stackoverflow.com/a/10861856/714112

Используйте String replaceFirst, чтобы поменять первый экземпляр разделителя на нечто уникальное:

String input = "this=that=theother"
String[] arr = input.replaceFirst("=", "==").split('==',-1);
String key = arr[0];
String value = arr[1];
System.out.println(key + " = " + value);
Решение Вопроса

Ты можешь использоватьreplaceFirst(String regex, String replacement) метод Строка.

 19 дек. 2017 г., 20:22
Что делать, если вы пытаетесь заменить строку, содержащую-?
 05 окт. 2016 г., 22:36
@ Шридхар-Сарнобат, это понятно по параметрам, которые я упомянул в ответе, наверное? И так оно и должно быть использовано. ,
 26 сент. 2016 г., 04:59
Это для REGEX не, Строки.
 12 февр. 2018 г., 16:29
@ Sridhar-Sarnobat, когда строка поиска содержит символы шаблона, которые не должны интерпретироваться, вы можете отфильтровать строку черезPattern.quote(…) первый. Тем не менее, это может быть более эффективным в использованииPattern.compile(searchString, Pattern.LITERAL).matcher(input) .replaceAll(replacement) затем & # x2026;
 08 окт. 2017 г., 10:46
Это может быть для регулярных выражений, но будет работать, даже если вы предоставите строку вместо встроенного регулярного выражения. Я только что проверил. Поэтому вышеприведенное обсуждение сбивает с толку людей, которые это видят. Ответ идеален.

Вы можете использовать следующий метод.

public static String replaceFirstOccurrenceOfString(String inputString, String stringToReplace,
        String stringToReplaceWith) {

    int length = stringToReplace.length();
    int inputLength = inputString.length();

    int startingIndexofTheStringToReplace = inputString.indexOf(stringToReplace);

    String finalString = inputString.substring(0, startingIndexofTheStringToReplace) + stringToReplaceWith
            + inputString.substring(startingIndexofTheStringToReplace + length, inputLength);

    return finalString;

}

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

Ваш ответ на вопрос