2013-01-23 27 views
71

doppelte Anführungszeichen wie folgt entwertet werden kann:Flucht doppelte Anführungszeichen in Zeichenfolge

string test = @"He said to me, ""Hello World"". How are you?"; 

Aber dies beinhaltet Charakter Hinzufügen " auf den String. Gibt es eine C# -Funktion oder eine andere Methode, doppelte Anführungszeichen zu umgehen, so dass keine Änderung in Zeichenfolge erforderlich ist?

+3

können Sie \ "Hallo Welt \" so verwenden – Pandian

+0

Was wollen Sie wirklich als Ergebnis? "wird" in einer wörtlichen Zeichenfolge. – Roel

Antwort

103

Nr

entweder wörtlich Stringliterale wie Sie haben, oder die Flucht der " Backslash verwenden.

string test = "He said to me, \"Hello World\" . How are you?"; 

Der String ist in beiden Fällen nicht verändert - es eine einzige " darin entgangen ist. Dies ist nur eine Möglichkeit, C# mitzuteilen, dass das Zeichen Teil der Zeichenfolge und kein Zeichenfolgenabschlusszeichen ist.

5

Sie missverstehen Flucht.

Die zusätzlichen Zeichen " sind Teil des Zeichenfolgenliterals. Sie werden vom Compiler als single" interpretiert.

Der tatsächliche Wert Ihrer Zeichenfolge ist immer noch He said to me , "Hello World".How are you ?, wie Sie sehen werden, wenn Sie es zur Laufzeit drucken.

26

Sie können Backslash in beide Richtungen verwenden;

string str = "He said to me, \"Hello World\". How are you?"; 

Es druckt;

He said to me, "Hello World". How are you? 

das ist genau die gleichen Drucke mit;

string str = @"He said to me, ""Hello World"". How are you?"; 

Hier ist ein DEMO.

" ist immer noch Teil Ihrer Zeichenfolge.

Auschecken Escape Sequences und String literals von MSDN.

3

Bitte erläutern Sie Ihr Problem. Sie sagen:.?.

Aber das beinhaltet das Hinzufügen Zeichen "auf die Zeichenfolge

Welches Problem ist, dass Sie nicht string foo = "Foo"bar""; eingeben können, weil das einen Compiler-Fehler aufrufen werden, wie für die Teil Zugabe, in Stringgröße Begriffe, die nicht wahr ist:

@"""".Length == "\"".Length == 1 
12

in C# Sie den umgekehrten Schrägstrich verwenden können Sonderzeichen in Zeichenfolge setzen zum Beispiel, „zu setzen, Sie nee. d zu schreiben ". Es gibt eine Menge von Zeichen, die Sie den umgekehrten Schrägstrich schreiben mit: Aufkantung mit einer Zahl:

  • \ 000 null
  • \ 010 Backspace
  • \ 011 horizontal Registerkarte
  • \ 012 neue Linie
  • \ 015 Wagenrücklauf
  • \ 032 Ersatz
  • \ 042 Doppel Zitat
  • \ 047 Apostroph
  • \ 134 Backslash
  • \ 140 Gravis

Aufkantung mit othe Charakter

  • \ eine Glocke (alert)
  • \ b Rück
  • \ Formfeed
  • \ n Neue Zeile
  • \ r Carriage Return
  • \ t Horizontal Registerkarte
  • \ v Vertikaler Tabulator
  • \‘Einfaches Anführungszeichen
  • \“ Doppeltes Anführungszeichen
  • \ Aufkantung
  • \? Wörtliche Fragezeichen
  • \ ooo ASCII-Zeichen in Oktalschreibweise
  • \ x hh ASCII-Zeichen in hexadezimale Schreibweise
  • \ x hhhh Unicode-Zeichen in hexadezimale Schreibweise, wenn diese Escape-Sequenz in einem Breitzeichen verwendet Konstante oder eine Unicode Zeichenfolgenliteral Beispiel: WCHAR f = L '\ x4e00' oder WCHAR b [] = L "Das chinesische Zeichen für eins ist \ x4e00".
Verwandte Themen