Как не использовать escape-символ в Java - PullRequest
1 голос
/ 05 июля 2019

Мне нужно использовать \ "в строке, но, видимо, я не могу. Чтобы быть более конкретным, мне нужно сделать что-то вроде: Допустим, строка выглядит примерно так:

I like cookie's "%s"

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

Но мне нужно, чтобы после замены строка выглядела следующим образом:

I Like cookie's \"%s\"

Кто-нибудь готов помочь?

1 Ответ

1 голос
/ 05 июля 2019

Проблема в том, что "и \ являются специальными символами. Чтобы использовать их в качестве литералов в строках, вам нужно их экранировать. Поэтому правильный путь будет:

str = str.replace("\"", "\\\"");

В этом контекстестроки разбиты как таковые, с пробелами вокруг символов или ясности:

" \" " This is an escaped quote
" \\ " This is an escaped backslash

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

" \\ \" " Quotes around the whole literal, an escaped backslash, an escaped quote
...