如何替换字符串的子字符串

2022-08-31 16:21:40

假设我有一个这样的字符串:string

"abcd=0; efgh=1"

我想用“dddd”替换“abcd”。我试图做这样的事情:

string.replaceAll("abcd","dddd");

它不起作用。有什么建议吗?

编辑:更具体地说,我正在使用Java,我正在尝试解析HTML文档,具体到标签之间的内容。我已经找到了一种将此内容解析为字符串的方法:<script>

 if(tag instanceof ScriptTag){
        if(((ScriptTag) tag).getStringText().contains("DataVideo")){
            String tagText = ((ScriptTag)tag).getStringText();
      }
}

现在我必须找到一种方法来用另一个子字符串替换一个子字符串。


答案 1

您需要使用 replaceAll() 方法的返回值。 不替换当前字符串中的字符,它将返回一个带有替换的新字符串。replaceAll()

  • 字符串对象是不可变的,其值在创建后无法更改。
  • 如果你不需要正则表达式,你可以使用 replace() 而不是 replaceAll()。
    String str = "abcd=0; efgh=1";
    String replacedStr = str.replaceAll("abcd", "dddd");

    System.out.println(str);
    System.out.println(replacedStr);

输出

abcd=0; efgh=1
dddd=0; efgh=1

答案 2

您应该注意的2件事:

  1. Java 中的字符串是不可变的,因此您需要将 thereplace 方法调用的返回值存储在另一个 String 中。
  2. 您在这里并不需要正则表达式,只需简单地调用 String#replace(String) 即可完成这项工作。

因此,只需使用此代码:

String replaced = string.replace("abcd", "dddd");