单引号在Java中替换

时间:2010-07-01 08:49:10

标签: java

在Java中我有:

String str = "Welcome 'thanks' How are you?";

我需要用str替换\'中的单引号,也就是说,当我打印str时,我应该输出Welcome \'thanks\' How are you

5 个答案:

答案 0 :(得分:25)

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

    String s = "Hello 'thanks' bye";
    s = s.replace("'", "\\'");
    System.out.println(s);
    // Hello \'thanks\' bye

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

参考

答案 1 :(得分:14)

使用

"Welcome 'thanks' How are you?".replaceAll("'", "\\\\'")

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

答案 2 :(得分:4)

这对我有用:

"Welcome 'thanks' How are you?".replaceAll("\\'", "\\\\'");

打印:

Welcome \'thanks\' How are you?

答案 3 :(得分:0)

如果您在尝试逃离MySQL时遇到像我这样的问题,您想要添加第二个单引号来逃避:

str.replaceAll("\\'","\\'\\'")

这将打印:

Welcome ''thanks'' How are you?

答案 4 :(得分:0)

我很困惑,基于Java版本,我们会得到不同的结果吗?还是我们还没有在这里测试答案?

这对我有用:

str.replaceAll("'", "\\'")

和此代码(可接受的答案)

str.replace("'", "\\'")

仅更改第一引号。

我的java -version

openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)