如何在Java中替换第一个出现的字符串

7hiiyaii  于 2022-12-25  发布在  Java
关注(0)|答案(7)|浏览(1241)

我想替换下面代码中第一次出现的字符串。

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

**如果测试包含以下输入,则不应替换

1.参见备注,(结尾处留有空格)
1.见评论,
1.参见备注**
我想得到如下的输出,

Output: this is for some test, help us
laawzig2

laawzig21#

可以使用字符串的replaceFirst(String regex, String replacement)方法。

n3schb8v

n3schb8v2#

您应该使用已经过测试且文档记录良好的库,以利于编写自己的代码。

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-

甚至还有一个不区分大小写的版本(这很好)。

美芬

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

学分

我的回答是以下内容的扩充:https://stackoverflow.com/a/10861856/714112

2j4z5cfb

2j4z5cfb3#

可以使用以下语句将第一次出现的文字字符串替换为另一个文字字符串:

String result = input.replaceFirst(Pattern.quote(search), Matcher.quoteReplacement(replace));

然而,这在后台做了大量的工作,而对于替换文字字符串的专用函数来说,这些工作是不需要的。

gc0ot86w

gc0ot86w4#

使用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);
    • 输出:**

这是为了测试,帮帮我们

lnxxn5zx

lnxxn5zx5#

您可以使用以下方法。

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提供了使用带正则表达式和不带正则表达式替换第一个出现的字符串的示例。

xiozqbni

xiozqbni6#

使用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);
jmo0nnb3

jmo0nnb37#

您也可以在node.js中使用此方法;

public static String replaceFirstOccurance(String str, String chr, String replacement){
    String[] temp = str.split(chr, 2);
    return temp[0] + replacement + temp[1];
}

相关问题