Подтвердить что ты не робот

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

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

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

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

  • См. комментарии, (с пробелом в конце)
  • См. комментарии,
  • См. комментарии **

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

 Output: this is for some test, help us

Спасибо заранее,

4b9b3361

Ответ 2

Используйте 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);

ВЫВОД:

это для какого-то теста, помогите нам

Ответ 3

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

org.apache.commons.lang3.
  StringUtils.replaceOnce("coast-to-coast", "coast", "") = "-to-coast"

Javadoc

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

Maven

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

Кредиты

Мой ответ - это увеличение: Как заменить строку только один раз без регулярного выражения на Java?

Ответ 5

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

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;

}

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

Ответ 6

Используйте 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);