В Java у меня есть:
String str = "Welcome 'thanks' How are you?";
Мне нужно заменить одинарные кавычки в str на \', то есть когда я печатаю str, я должен получить вывод как Welcome \'thanks\' How are you.
str
\'
Welcome \'thanks\' How are you
Похоже, что вы хотите что-то вроде этого:
String s = "Hello 'thanks' bye"; s = s.replace("'", "\\'"); System.out.println(s); // Hello \'thanks\' bye
Используется метод String.replace(CharSequence, CharSequence) для замены строки.Помните, что \ является escape-символом для строковых литералов Java;то есть "\\'" содержит 2 символа, обратную косую черту и одинарную кавычку.
String.replace(CharSequence, CharSequence)
\
"\\'"
Использование
"Welcome 'thanks' How are you?".replaceAll("'", "\\\\'")
Вам нужно два уровня экранирования в строке замены, один для Java и один для механизма регулярных выражений.
Вот что у меня сработало:
"Welcome 'thanks' How are you?".replaceAll("\\'", "\\\\'");
Печатает:
Welcome \'thanks\' How are you?
В случае, если вы, как и я, столкнетесь с этим вопросом, пытаясь скрыться за MySQL, вы захотите добавить вторую одинарную кавычку для экранирования:
str.replaceAll("\\'","\\'\\'")
Это напечатало бы:
Welcome ''thanks'' How are you?