如何将字符序列替换为“\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”,至少我不知道。
存在多个问题:
您检查您的字符串是否包含 "pqtd"
,然后尝试替换未出现在您的字符串中任何位置的 "dtdpq"
。我真的不确定额外的“d”和“q”是从哪里来的。
您正在使用将正则表达式作为第一个参数的方法 replaceAll
。因为你想替换文字字符串,你不需要使用正则表达式,可以只使用标准的 replace
方法。
字符串是不可变的,不能修改。因此,所有替换选项都不会修改原始字符串,而是 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
我想将字符串“pqtd”替换为“\n”,我的代码是:
String str = "this is my pqtd string";
if (str.contains("pqtd")) {
str.replaceAll("pqtd", "\n");
}
但是那不行,如果我更改所有代码,反向执行(尝试将“\n”替换为“pqtd”),它就可以了,所以我认为问题在于 Java 不能将字符序列替换为“\n”,至少我不知道。
存在多个问题:
您检查您的字符串是否包含
"pqtd"
,然后尝试替换未出现在您的字符串中任何位置的"dtdpq"
。我真的不确定额外的“d”和“q”是从哪里来的。您正在使用将正则表达式作为第一个参数的方法
replaceAll
。因为你想替换文字字符串,你不需要使用正则表达式,可以只使用标准的replace
方法。字符串是不可变的,不能修改。因此,所有替换选项都不会修改原始字符串,而是 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