Одинарные кавычки заменяют в Java - PullRequest
11 голосов
/ 01 июля 2010

В Java у меня есть:

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

Мне нужно заменить одинарные кавычки в str на \', то есть когда я печатаю str, я должен получить вывод как Welcome \'thanks\' How are you.

Ответы [ 4 ]

25 голосов
/ 01 июля 2010

Похоже, что вы хотите что-то вроде этого:

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

Используется метод String.replace(CharSequence, CharSequence) для замены строки.Помните, что \ является escape-символом для строковых литералов Java;то есть "\\'" содержит 2 символа, обратную косую черту и одинарную кавычку.

Ссылки

14 голосов
/ 01 июля 2010

Использование

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

Вам нужно два уровня экранирования в строке замены, один для Java и один для механизма регулярных выражений.

4 голосов
/ 08 сентября 2014

Вот что у меня сработало:

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

Печатает:

Welcome \'thanks\' How are you?
0 голосов
/ 05 октября 2017

В случае, если вы, как и я, столкнетесь с этим вопросом, пытаясь скрыться за MySQL, вы захотите добавить вторую одинарную кавычку для экранирования:

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

Это напечатало бы:

Welcome ''thanks'' How are you?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...