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("''*","''");