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

Mic*_*alB 51 java string substring

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

"abcd=0; efgh=1"
Run Code Online (Sandbox Code Playgroud)

我想用"dddd"替换"abcd".我试过做这样的事情:

string.replaceAll("abcd","dddd");
Run Code Online (Sandbox Code Playgroud)

这是行不通的.有什么建议?

编辑:更具体地说,我在Java工作,我试图解析HTML文档,具体是<script>标签之间的内容.我已经找到了如何将此内容解析为字符串的方法:

 if(tag instanceof ScriptTag){
        if(((ScriptTag) tag).getStringText().contains("DataVideo")){
            String tagText = ((ScriptTag)tag).getStringText();
      }
}
Run Code Online (Sandbox Code Playgroud)

现在我必须找到一种方法如何用另一个子串替换一个子串.

Alp*_*per 72

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

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

    System.out.println(str);
    System.out.println(replacedStr);
Run Code Online (Sandbox Code Playgroud)

输出

abcd=0; efgh=1
dddd=0; efgh=1
Run Code Online (Sandbox Code Playgroud)


anu*_*ava 13

你应该注意的两件事:

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

所以只需使用此代码:

String replaced = string.replace("abcd", "dddd");
Run Code Online (Sandbox Code Playgroud)


小智 12

您需要创建变量以将新值分配给,如下所示:

String str = string.replaceAll("abcd","dddd");
Run Code Online (Sandbox Code Playgroud)


Ric*_*ira 5

通过正则表达式,我认为这是java,该方法replaceAll()返回一个新的String并替换了子字符串,因此请尝试以下操作:

String teste = "abcd=0; efgh=1";

String teste2 = teste.replaceAll("abcd", "dddd");

System.out.println(teste2);
Run Code Online (Sandbox Code Playgroud)

输出:

dddd=0; efgh=1
Run Code Online (Sandbox Code Playgroud)