如何在 Java 中替换字符串中的点 (.)
我有一个名为 persons.name
的字符串,
我想用 /*/
替换 DOT .
,即我的输出将是 persons/ */name
我尝试了这段代码:
String a="\\*\\";
str=xpath.replaceAll("\\.", a);
我收到 StringIndexOutOfBoundsException。
如何替换点?
I have a String called persons.name
I want to replace the DOT .
with /*/
i.e my output will be persons/*/name
I tried this code:
String a="\\*\\";
str=xpath.replaceAll("\\.", a);
I am getting StringIndexOutOfBoundsException.
How do I replace the dot?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
在点之前需要两个反斜杠,一个用于转义斜杠,以便它通过,另一个用于转义点,以便它变成字面意思。正斜杠和星号按字面意思处理。
http: //docs.oracle.com/javase/7/docs/api/java/lang/String.html#replaceAll(java.lang.String,%20java.lang.String)
You need two backslashes before the dot, one to escape the slash so it gets through, and the other to escape the dot so it becomes literal. Forward slashes and asterisk are treated literal.
http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#replaceAll(java.lang.String,%20java.lang.String)
如果你想替换一个简单的字符串并且不需要正则表达式的能力,你可以使用
替换
,而不是replaceAll
。replace
替换每个匹配的子字符串,但不将其参数解释为正则表达式。If you want to replace a simple string and you don't need the abilities of regular expressions, you can just use
replace
, notreplaceAll
.replace
replaces each matching substring but does not interpret its argument as a regular expression.使用 Apache Commons Lang:
或使用独立的 JDK:
Use Apache Commons Lang:
or with standalone JDK:
return Sentence.replaceAll("\s",".");
return sentence.replaceAll("\s",".");