Maison >Java >javaDidacticiel >Comment supprimer l'échappement des littéraux de chaîne Java ?

Comment supprimer l'échappement des littéraux de chaîne Java ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-22 17:51:10968parcourir

How to Unescape Java String Literals?

Comment annuler l'échappement d'un littéral de chaîne Java en Java ?

Java ne fournit pas de fonction simple pour annuler l'échappement des littéraux de chaîne. Cette tâche nécessite la conversion manuelle des séquences d'échappement de caractères en caractères correspondants.

Échappements de caractères courants

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

Récupération des littéraux de chaîne

Une approche pour annuler l'échappement des littéraux de chaîne consiste à utiliser une fonction personnalisée qui parcourt la chaîne, identifiant les séquences d'échappement et remplaçant avec les caractères appropriés.

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();
}

Exemple :

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

Bibliothèques pour l'échappement de chaînes

Un tiers Les bibliothèques -party fournissent également des fonctions pour annuler l'échappement des littéraux de chaîne. Par exemple, la bibliothèque Apache Commons Lang a la méthode suivante :

public static String unescapeJava(String str)

Cette méthode peut être utilisée pour annuler l'échappement des littéraux de chaîne Java, y compris les séquences d'échappement non couvertes par l'approche de base mentionnée ci-dessus.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn