Как заключить в кавычки \ "(двойная кавычка) в строковом литерале? - PullRequest
7 голосов
/ 13 марта 2012

Это, наверное, очень простой вопрос, но я не могу разобраться с этим.Мне нужно иметь строку, содержащую \", чтобы она не рассматривалась как escape-символ.Я попытался использовать @, но это не сработает.Единственный другой способ сделать это - использовать \u0022, но не хочу, пока я не смогу помочь.

Желаемая строка - string s = "\"\""; // Obviously this doesn't work!

Требуемый вывод консоли -\"\"

Надеюсь, это имеет смысл.

Спасибо!

Ответы [ 9 ]

6 голосов
/ 13 марта 2012

Попробуйте

string s = "\\\"\\\"";

Тебе тоже нужно избегать обратной косой черты.

Mike

5 голосов
/ 13 марта 2012

Вы можете использовать литерал, но вам нужно удвоить кавычки.

   string s = @"\""\"""; 
5 голосов
/ 13 марта 2012

В дословных строковых литералах (@"...") " в строковом значении кодируется как "", что также является escape-последовательностью only в дословных строках.

@"\""Happy coding!\"""     // => \"Happy coding!\"

"\\\"Happy coding!\\\""    // => \"Happy coding!\"

Обратите внимание, что во 2-м случае (не дословном строковом литерале) требуется \ перед \ и ", чтобы избежать их и помешать их нормальному значению.

См. Строковую ссылку C # для получения дополнительной информации и примеров.

4 голосов
/ 13 марта 2012

Я думаю, что вы должны избегать и обратной косой черты ... так что что-то вроде "\\\"\\\"" должно работать, я считаю.

1 голос
/ 13 марта 2012

В дословной строке (строка, начинающаяся с @"") для экранирования двойных кавычек вы используете двойные кавычки, например, @"Please press ""Ok"".". Если вы хотите сделать это со стенографическими строками, вы должны сделать что-то вроде @"\""" (это 3 двойные кавычки в конце).

1 голос
/ 13 марта 2012
String s = @"\""\""";

Символы DblQuote будут экранироваться от второго символа dblquote

Хотя для лучшей читаемости я бы выбрал:

const String DOUBLEQUOTE = """";
const String BACKSLASH = @"\";

String s = BACKSLASH + DOUBLEQUITE + BACKSLASH + DOUBLEQUOTE;
1 голос
/ 13 марта 2012
Console.WriteLine( "\\\"\\\"" );

Просто поставьте \ перед каждым символом, который нужно напечатать.

1 голос
/ 13 марта 2012

Используйте эту строку:

string s = "\\\"\\\"";
0 голосов
/ 13 июня 2016

Вы можете сделать это следующим образом,

string s = "something'\\\'";

Используйте один '' вместо "" в строке, чтобы сделать то же самое.

...