Java 用另一个单引号替换字符串中的单引号
我有一个带单引号的字符串。我想用两个单引号替换单引号。 我试着用Java 用另一个单引号替换字符串中的单引号,java,Java,我有一个带单引号的字符串。我想用两个单引号替换单引号。 我试着用 String s="Kathleen D'Souza"; s.replaceAll("'","''"); s.replaceAll("\'","\'\'"); s.replace("'","''"); s.replace("\'","\'\'"); 但是单引号不会被2个单引号取代。字符串是不可变的。将replaceAll的结果分配给您的字符串: s = s.replaceAll("'","''"); 将替换的字符串重
String s="Kathleen D'Souza";
s.replaceAll("'","''");
s.replaceAll("\'","\'\'");
s.replace("'","''");
s.replace("\'","\'\'");
但是单引号不会被2个单引号取代。
字符串是不可变的。将replaceAll
的结果分配给您的字符串
:
s = s.replaceAll("'","''");
将替换的字符串重新分配给s
String s="Kathleen D'Souza";
s = s.replaceAll("'","''");
尝试字符串#replace()。它将用双精度“”替换所有出现的单精度“”。请重试
s=“测试”测试
注意,对于给定的解决方案,连续的单引号将加倍,因此Kathleen D“Souza将变成Kathleen D”Souza。(我见过用户这样比自己聪明。)如果这是您关心的问题,您可以将连续的单引号与以下内容匹配:
s = s.replaceAll("''*","''");
为什么?我对这样的问题总是很怀疑。我通常会发现他们想要做一些不需要做的事情,在hibernate查询中使用单引号之前,我需要先将其转义。这就是我们试图更换2个单曲的原因quotes@EJP这是一个非常合理的问题。转义SQL查询总是一件好事。直到有人能够使用更好的技术自动转义之前,人们只能进行字符串替换。OWASP排名前十。
`s.replaceAll("'","\"");` => test " test
`s.replaceAll("'","''");` => test '' test
s = s.replaceAll("''*","''");