如何将字符序列替换为“\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. 字符串是不可变的,不能修改。因此,所有替换选项都不会修改原始字符串,而是将修改后的字符串作为返回值返回。如果您希望 String 发生任何更改,您需要使用该返回值并将您的 String 分配给它。

解决所有这三个问题:

String str = "this is my pqtd string";

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

哪个将产生预期的输出

这是我的
字符串