【发布时间】:2016-01-21 17:21:03
【问题描述】:
我已尝试替换所有“|”通过“2”使用以下代码:
String myString = "I want to change | with 2";
String trimedString = myString.replaceAll("|", "2");
System.out.print(trimedString);
我的预期输出是:
"I want to change | with 2"
但真正的输出是:
"2I2 2w2a2n2t2 2t2o2 2c2h2a2n2g2e2 2|2 2w2i2t2h2 222"
它在每个字符之前和之后添加了 2。这样做的正确方法是什么?
【问题讨论】:
-
管道字符必须在正则表达式中转义,尝试“\\|”而不是“|” .
-
|是正则表达式中的特殊字符,因此您需要对其进行转义:\|(或 java 字符串中的"\\|")。 -
顺便说一句,您的替换和您的预期输出不匹配。假设你修复了你会得到
"I want to change 2 with 2"的正则表达式 -
成功了!!谢谢@Thomas
标签: java replaceall