Home >Java >javaTutorial >How to Unescape Java String Literals?
How to Unescape a Java String Literal in Java?
Java doesn't provide a straightforward function for unescaping string literals. This task requires manually converting character escape sequences into their corresponding characters.
Common Character Escapes
Escape Sequence | Character |
---|---|
Backslash | |
n | Newline |
r | Carriage return |
t | Tab |
b | Backspace |
f | Form feed |
" | Double quote |
' | Single quote |
Unescaping String Literals
One approach to unescape string literals is to use a custom function that iterates through the string, identifying escape sequences, and replacing them with the appropriate characters.
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(); }
Example:
String original = "\\"Hello, World!\\""; String unescaped = unescape(original); System.out.println(unescaped); // Output: "Hello, World!"
Libraries for String Unescaping
Some third-party libraries also provide functions for unescaping string literals. For example, the Apache Commons Lang library has the following method:
public static String unescapeJava(String str)
This method can be used to unescape Java string literals, including escape sequences not covered by the basic approach mentioned above.
The above is the detailed content of How to Unescape Java String Literals?. For more information, please follow other related articles on the PHP Chinese website!