Ответ 1
Вы можете использовать replaceFirst(String regex, String replacement)
метод String.
Я хочу заменить первое вхождение строки следующим образом.
String test = "see Comments, this is for some test, help us"
** Если тест содержит вход следующим образом, он не должен заменять
Я хочу получить результат следующим образом:
Output: this is for some test, help us
Спасибо заранее,
Вы можете использовать replaceFirst(String regex, String replacement)
метод String.
Используйте 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);
ВЫВОД:
это для какого-то теста, помогите нам
Вы должны использовать уже проверенные и хорошо документированные библиотеки в пользу написания собственного кода.
org.apache.commons.lang3.
StringUtils.replaceOnce("coast-to-coast", "coast", "") = "-to-coast"
Там даже версия, которая нечувствительна к регистру (что хорошо).
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.7</version>
</dependency>
Мой ответ - это увеличение: Как заменить строку только один раз без регулярного выражения на Java?
Вы можете использовать следующий оператор для замены первого вхождения строки.
String result = input.replaceFirst(Pattern.quote(stringToReplace), stringToReplaceWith);
Эта ссылка содержит полную программу, включая тестовые примеры.
Вы можете использовать следующий метод.
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, дайте примеры для замены первого вхождения строки, использующего с регулярными выражениями и без них.
Используйте 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);