单引号在Java中替换

dpa*_*ksp 13 java

在Java中我有:

String str = "Welcome 'thanks' How are you?";
Run Code Online (Sandbox Code Playgroud)

我需要更换单引号str\',那就是,当我打印str我应该得到输出Welcome \'thanks\' How are you.

pol*_*nts 28

看起来你可能想要这样的东西:

    String s = "Hello 'thanks' bye";
    s = s.replace("'", "\\'");
    System.out.println(s);
    // Hello \'thanks\' bye
Run Code Online (Sandbox Code Playgroud)

这使用String.replace(CharSequence, CharSequence)方法来进行字符串替换.请记住,这\是Java字符串文字的转义字符; 也就是说,"\\'"包含2个字符,反斜杠和单引号.

参考

  • @dpaksp,它**确实**工作.如果没有,则表示您没有正确复制粘贴. (2认同)

Mar*_*coS 14

使用

"Welcome 'thanks' How are you?".replaceAll("'", "\\\\'")
Run Code Online (Sandbox Code Playgroud)

在替换字符串中需要两个级别的转义,一个用于Java,一个用于正则表达式引擎.

  • 一对(小)挑剔:第二个字符串不是*regex-string*而是*regex-replacement-string*,但你是正确的它需要额外的转义,因为它用于转义元字符`$`在这样一个字符串(当然,本身).此外,在这种情况下不需要使用`relaceAll(...)`:`replace(...)`在这里做的伎俩. (2认同)