我想转义字符串中的转义序列。
示例:如果我有一个内容为“\n\u0073”的字符串,我需要以这样一种方式转义它们,如果我将它打印到命令行,我会看到
this:
\n\u0073
instead of:
s
我还将转义双引号 (") 和反斜杠 (\),并且我想出了一个表达式来转义它们:
Pattern p = Pattern.compile("([\"\\\\])");
String str = p.matcher("\"\n\u0073\\"").replaceAll("\\\\$1");
这产生了我:
\"
s\\
不过,它不处理转义序列。我想要的是:
\"\n\u0073\\
我需要进行哪些修改才能转义转义序列?
最佳答案
您可以使用 StringEscapeUtils .上面有方法escapeJava()
。不幸的是,imo,没有办法转义像 \u0073 这样的 unicode 文字,所以对于您的示例输入 "\"\n\u0073\"",StringEscapeUtils。 escapeJava("\"\n\u0073\"")
将返回 \"\ns\"
关于Java转义转义序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13830765/