Schnelle Frage. Gibt es ein Äquivalent von @ für Zeichenfolgen in Java:
Zum Beispiel kann ich @"c:\afolder\afile"
in C # die Escape-Zeichen bei der Verarbeitung ignorieren, anstatt dies tun zu müssen "c:\\afolder\\aFile"
. Gibt es ein Java-Äquivalent?
hmmm: stackoverflow entweicht mir .. lol. Das zweite Beispiel sollte lauten:
c: (doppelter Backslash) Ordner (doppelter Backslash) aDatei
@
auch Sprachschlüsselwörter als Bezeichner verwendet werden können.Antworten:
Nein . Das Escaping / Externalisieren der Zeichenfolge ist Ihre einzige Wahl.
quelle
Nein, Java hat keine wörtlichen String-Literale .
Wenn Sie eine Java-ähnlich (und Java-VM-basierte) Sprache mögen, tut aber, mögen Sie vielleicht sehen Groovy , die hat verschiedene Formen von Stringliteral .
quelle
groovy.codehaus.org
-Links sind unterbrochenWie Kent und Jon gesagt haben, gibt es keine.
Ich antworte nur, um darauf hinzuweisen, dass selbst wenn es für Ihren speziellen Fall eine schlechte Idee wäre, im allgemeinen Fall ein mehr als einmaliges Programm anzunehmen.
Java-Programme laufen auf mehr Plattformen als nur Windows, und andere Plattformen haben andere Dateibegrenzer. Anstatt sich mit maskierten Backslashes zu befassen, können Sie Ihr spezielles Beispiel korrekt verarbeiten, indem Sie die Eigenschaft "Dateitrennzeichen" abrufen:
Wo Sie ROOTDIR basierend auf einer Richtlinie separat erstellt hätten - nicht nur auf der Plattform, sondern auch darauf, ob Ihre "Datei" relativ zum tatsächlichen Dateisystemstamm oder relativ zum Basisverzeichnis des Benutzers sein soll.
Durch die Verwendung der Eigenschaft zum Trennen von Dateien können Ihre Programme jedoch besser verwendet werden. Ist es mehr Arbeit? Ja. Wie Wanda Sykes sagt: "Aber es lohnt sich".
quelle
Derzeit wird es in Java nicht unterstützt, könnte aber in zukünftigen Versionen verfügbar sein. Am 23.01.2018 wurde JEP 326: Raw String Literals erstellt
Den Fortschritt finden Sie unter https://bugs.openjdk.java.net/browse/JDK-8196004
Wahrscheinlich werden Sie es eines Tages tun können mit:
UPDATE: JEP schlägt vor, JDK 12: 326: Raw String Literals (Vorschau) zu löschen. Sie können die Gründe hier lesen: http://mail.openjdk.java.net/pipermail/jdk-dev/2018-December/002402.html
Weitere Details finden Sie hier https://bugs.openjdk.java.net/browse/JDK-8215682
Fazit : In naher Zukunft wird es in Java keine wörtlichen Zeichenfolgen geben. Und selbst wenn es erscheint, wird es eher nicht `` sein.
quelle