5

我有一个带单引号的字符串。我想用 2 个单引号替换单引号。我尝试使用

 String s="Kathleen D'Souza";

s.replaceAll("'","''");

s.replaceAll("\'","\'\'");

s.replace("'","''");

s.replace("\'","\'\'");

但是单引号不会被 2 个单引号替换。

4

5 回答 5

5

将替换的字符串重新分配给s

String s="Kathleen D'Souza";
s = s.replaceAll("'","''");
于 2013-02-22T05:10:43.063 回答
2

请尝试 s="test'test";

`s.replaceAll("'","\"");`     => test " test

`s.replaceAll("'","''");`     => test '' test
于 2013-02-22T05:14:13.630 回答
0

Strings是不可变的。将结果分配replaceAll给您的String

s = s.replaceAll("'","''");
于 2013-02-22T05:10:23.203 回答
0
String s="Kathleen D'Souza";
s= s.replace("'", "''");

尝试字符串#replace()。它将用双 '' 替换所有出现的单 '。

于 2013-02-22T05:10:53.963 回答
0

请注意,对于给定的解决方案,连续的单引号将加倍,因此 Kathleen D''Souza 变成 Kathleen D''''Souza。(我见过用户像这样比自己聪明。)如果这是您所关心的,您可以将连续的单引号与:

 s = s.replaceAll("''*","''");
于 2015-07-09T18:28:43.537 回答