如何将字符序列替换为“\n”

How can I replace a char sequence to "\n"

我想将字符串“pqtd”替换为“\n”,我的代码是:

String str = "this is my pqtd string";

if (str.contains("pqtd")) {
        str.replaceAll("pqtd", "\n");
}

但是那不行,如果我更改所有代码,反向执行(尝试将“\n”替换为“pqtd”),它就可以了,所以我认为问题在于 Java 不能将字符序列替换为“\n”,至少我不知道。

存在多个问题:

  1. 您检查您的字符串是否包含 "pqtd",然后尝试替换未出现在您的字符串中任何位置的 "dtdpq"。我真的不确定额外的“d”和“q”是从哪里来的。

  2. 您正在使用将正则表达式作为第一个参数的方法 replaceAll。因为你想替换文字字符串,你不需要使用正则表达式,可以只使用标准的 replace 方法。

  3. 字符串是不可变的,不能修改。因此,所有替换选项都不会修改原始字符串,而是 return 修改后的字符串作为 return 值。如果您希望字符串发生任何更改,则需要使用该 return 值并将字符串分配给它。

解决所有这 3 个问题:

String str = "this is my pqtd string";

if (str.contains("pqtd")) {
        str = str.replace("pqtd", "\n");
}
    
System.out.println(str);

这将产生预期的输出

this is my
string