2012-03-13 7 views
7

Esta es probablemente una pregunta muy simple, pero parece que no puedo entenderlo. Necesito una cadena que contenga \" sin ella viéndolo como un carácter de escape. he intentado utilizar @ pero no va a trabajar. La única otra manera pensé en hacer esto sería utilizar \u0022 pero no quieren a menos que pueda evitarlo.Cómo citar "(barra doble) en un literal de cadena?

cadena deseada - string s = "\"\""; // Obviously this doesn't work!

deseado salida de la consola - \"\"

Ho pe esto tiene sentido.

Gracias!

Respuesta

6

Trate

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

tienes que escapar de sus barras invertidas también.

Mike

+0

Lo he intentado sin embargo mi s = "\\\" \\\ "" – Yagzii

1

Utilice esta cadena:

string s = "\\\"\\\""; 
1
Console.WriteLine("\\\"\\\""); 

Sólo hay que poner un \ antes de cada carácter que debe ser impreso.

4

Creo que también tiene que escapar las barras diagonales inversas ... así que algo como "\\\"\\\"" debería funcionar, creo.

4

En literales de cadena literales (@"...") un " en el valor de cadena se codifica como "", que pasa a ser también la secuencia de escape solamente en las cadenas literales.

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

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

Tenga en cuenta que en el segundo caso (no es una cadena literal palabra por palabra), se requiere un \ antes de la \ y la " para escapar de ellos y evitar que sus significados normales.

Consulte el C# string reference para obtener más detalles y ejemplos.

+0

No sabía sobre ese literal, ¡gracias! –

1
String s = @"\""\"""; 

caracteres DblQuote escaparán a un segundo personaje dblquote

Aunque para una mejor legibilidad me iría con:

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

String s = BACKSLASH + DOUBLEQUITE + BACKSLASH + DOUBLEQUOTE; 
1

En una cadena textual (una cadena que comienza con @"") para escapar comillas dobles usas comillas dobles, por ej. @"Please press ""Ok"".". Si quieres hacerlo con cadenas verbales, harías algo como @"\""" (son 3 comillas dobles al final).

5

Puede usar el literal, pero debe duplicar las comillas.

string s = @"\""\"""; 
0

Puede hacerlo de esta manera,

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

utilizar un único '' en lugar de "" en cadena para hacer lo mismo.

Cuestiones relacionadas