我试图替换所有"|" 使用以下代码"2":
String myString = "I want to change | with 2";
String trimedString = myString.replaceAll("|", "2");
System.out.print(trimedString);
Run Code Online (Sandbox Code Playgroud)
我的预期产量是:
"I want to change | with 2"
Run Code Online (Sandbox Code Playgroud)
但实际产出是:
"2I2 2w2a2n2t2 2t2o2 2c2h2a2n2g2e2 2|2 2w2i2t2h2 222"
Run Code Online (Sandbox Code Playgroud)
它在每个char之前和之后添加了2个.这样做的正确方法是什么?
您必须在管道符号前面插入两个反斜杠才能将其转义.
String myString = "I want to change | with 2";
String trimedString = myString.replaceAll("\\|", "2");
System.out.print(trimedString);
Run Code Online (Sandbox Code Playgroud)
如果使用replaceAll,第一个参数将被视为正则表达式。因此,您需要转义|,它是一个正则表达式元字符:
String trimedString = myString.replaceAll("\\|", "2")
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用其中一种replace()方法来代替replaceAll(). 它们仍然替换所有出现的情况,但不使用正则表达式匹配。例如:
String trimedString = myString.replace("|", "2");
Run Code Online (Sandbox Code Playgroud)
它将每个参数视为文字字符串。或者,由于您正在进行单字符替换,因此可以使用:
String trimedString = myString.replace('|', '2');
Run Code Online (Sandbox Code Playgroud)
这将是迄今为止最有效的。
| 归档时间: |
|
| 查看次数: |
3232 次 |
| 最近记录: |