2016-04-29 7 views
2

Escape-Zeichenfolge Ich habe versucht, Zeichenfolge Variable zu Pfad einer der Datei zu initialisieren. Es meldet, dass die Escape-Sequenz nicht gültig ist. Irgendeine Lösungsmöglichkeit?Wie aus Escape-Sequenz in einer Zeichenfolge-Variable

String s="F:\abc\xyz.txt"; 
+0

Eine bestimmte Sprache? –

+3

Das Zeichen "\" hat eine besondere Bedeutung, um zu "entkommen" oder die Bedeutung des nächsten Zeichens zu ändern ("\ t" bedeutet zum Beispiel ein Tab-Zeichen). Da es die Aufgabe hat, Escape-Sequenzen zu erstellen, müssen Sie die Escape-Sequenz "\\" verwenden, wenn Sie tatsächlich ein \ -Zeichen in der Zeichenfolge verwenden möchten. Dies wird in das \ -Zeichen übersetzt. –

+0

Vielen Dank .. Das funktioniert wie ein Charme :) – Kyrie

Antwort

0

Converting @Hank D und @ Seige Kommentare zu einer Antwort:

In Java und C# (es schwer zu sagen ist, welche Sprache Sie hier verwenden, aber es ist wahrscheinlich eines der beiden), die Backslash-Zeichen \ wird verwendet, um Escape-Sequenzen zu starten, die Sie verwenden können, um Sonderzeichen in Ihrer Zeichenfolge einzuschließen, die Sie normalerweise nicht auf der Tastatur eingeben können oder die andernfalls Probleme verursachen würden. Zum Beispiel können Sie eine neue Zeile in einer Zeichenfolge setzen durch \n schreiben:

String multiline = "This String\nSpans Multiple\nLines!"; 

Sie Unicode-Zeichen mit der \U Sequenz umfassen können:

String heart = "I \U2764 Escape Sequences!"; 

Und Sie können verschachtelte Anführungszeichen mit der \" Sequenz umfassen:

String quotation = "Quoth the raven, \"Nevermore.\""; 

In Ihrem Fall, Sie versuchen, den \ Charakter als verwenden Pfadtrennzeichen, aber Java/C# interpretiert, was Sie tun, wenn Sie versuchen, ungültige Escape-Sequenzen zu erstellen. Das heißt, die Zeichenfolge

F:\abc\xyz.txt 

wird immer als

interpretiert
F:(\a)bc(\x)yz.txt 

Um dies zu beheben, können Sie die Tatsache nutzen, dass die Escape-Sequenz \\ für einen umgekehrten Schrägstrich steht und die Zeichenfolge wie folgt schreiben:

Fun Tatsache: Der Grund, dass der Backslash als Pfadtrennzeichen in Java/C# gewählt wurde, ist, dass es so in C gewählt wurde, weil dieses Zeichen so selten benutzt wurde ... an Dann kam DOS/Windows und brach alles kaputt. :-)

Alternativ kann in C# können Sie

String s = @"F:\abc\xyz.txt"; 

Das Präfix @ schreiben deaktiviert Sequenzen in der Zeichenfolge entkommen, die Dinge viel einfacher zu lesen macht.