在Java中我有:
String str = "Welcome 'thanks' How are you?";
我需要用str
替换\'
中的单引号,也就是说,当我打印str
时,我应该输出Welcome \'thanks\' How are you
。
答案 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)