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!