Heim >Java >javaLernprogramm >Wie entferne ich Java-String-Literale?

Wie entferne ich Java-String-Literale?

Linda Hamilton
Linda HamiltonOriginal
2024-12-22 17:51:10982Durchsuche

How to Unescape Java String Literals?

Wie kann ich in Java das Escapezeichen für ein Java-String-Literal aufheben?

Java bietet keine einfache Funktion zum Aufheben des Escapezeichens für String-Literale. Für diese Aufgabe müssen Zeichen-Escape-Sequenzen manuell in die entsprechenden Zeichen konvertiert werden.

Gemeinsame Zeichen-Escapezeichen

Escape Sequence Character
Backslash
n Newline
r Carriage return
t Tab
b Backspace
f Form feed
" Double quote
' Single quote

Zeichenkettenliterale aufheben

Ein Ansatz zum Demaskieren von Zeichenfolgenliteralen besteht darin, eine benutzerdefinierte Funktion zu verwenden, die die Zeichenfolge durchläuft, Escape-Sequenzen identifiziert und diese ersetzt mit den entsprechenden Zeichen.

public static String unescape(String str) {
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < str.length(); i++) {
        char c = str.charAt(i);
        if (c == '\') {
            i++;
            switch (str.charAt(i)) {
                case 'n':
                    sb.append('\n');
                    break;
                case 'r':
                    sb.append('\r');
                    break;
                case 't':
                    sb.append('\t');
                    break;
                case 'b':
                    sb.append('\b');
                    break;
                case 'f':
                    sb.append('\f');
                    break;
                case '\"':
                    sb.append('\"');
                    break;
                case '\'':
                    sb.append('\'');
                    break;
                case '\':
                    sb.append('\');
                    break;
                default:
                    sb.append(c); // Unrecognized escape sequence
            }
        } else {
            sb.append(c);
        }
    }
    return sb.toString();
}

Beispiel:

String original = "\\"Hello, World!\\"";
String unescaped = unescape(original);
System.out.println(unescaped); // Output: "Hello, World!"

Bibliotheken für String Unescaping

Einige Dritt- Party-Bibliotheken bieten auch Funktionen zum Demaskieren von String-Literalen. Die Apache Commons Lang-Bibliothek verfügt beispielsweise über die folgende Methode:

public static String unescapeJava(String str)

Diese Methode kann verwendet werden, um Java-String-Literale zu demaskieren, einschließlich Escape-Sequenzen, die nicht durch den oben genannten grundlegenden Ansatz abgedeckt werden.

Das obige ist der detaillierte Inhalt vonWie entferne ich Java-String-Literale?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn