我想在下面替换第一次出现的String。
String test = "see Comments, this is for some test, help us"
**如果test包含如下输入,则不应替换
我想得到如下输出,
Output: this is for some test, help us
提前致谢,
答案 0 :(得分:75)
您可以使用String的replaceFirst(String regex, String replacement)
方法。
答案 1 :(得分:15)
您应该使用已经过测试且记录良好的库来支持编写自己的代码。
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>
答案 2 :(得分:14)
String test = "see Comments, this is for some test, help us";
String newString = test.substring(test.indexOf(",") + 2);
System.out.println(newString);
<强>输出:强>
这是一些测试,帮助我们
答案 3 :(得分:9)
您可以使用以下语句替换第一次出现的字符串。
String result = input.replaceFirst(Pattern.quote(stringToReplace), stringToReplaceWith);
这个link有完整的程序,包括测试用例。
答案 4 :(得分:2)
您可以使用以下方法。
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提供了使用带有和不带正则表达式替换第一次出现的字符串的示例。
答案 5 :(得分:-1)
使用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);