【发布时间】:2016-07-05 12:14:20
【问题描述】:
我想用转义单引号替换所有单引号。首先我尝试了String.replaceAll("\'", "\\'"),但没有成功。所以,我尝试了StringUtils.replace(String, "\'", "\\'"),它有效。
代码如下:
String innerValue = "abc'def'xyz";
System.out.println("stringutils output:"+StringUtils.replace(innerValue, "\'", "\\'"));
System.out.println("replaceAll output:"+innerValue.replaceAll("\'", "\\'"));
预期输出:
stringutils output:abc\'def\'xyz
replaceAll output:abc\'def\'xyz
实际输出:
stringutils output:abc\'def\'xyz
replaceAll output:abc'def'xyz
我只是好奇为什么String.replaceAll 没有用\' 替换'?
【问题讨论】:
-
String.replaceAll使用正则表达式,其中反斜杠具有特殊含义。使用replace而不是reaplceAll。 -
提示:当标准 java 库调用不符合您的期望时;那么你的期望是错误的。解决这个问题的简单方法:RTFM。说真的,不要假设一个方法做这个或那个;只需阅读它的javadoc。或者:做一些先前的研究,比如在写一个新问题之前搜索这个网站。
标签: java string replaceall string-utils