首页 >Java >java教程 >如何正确取消转义 Java 字符串文字?

如何正确取消转义 Java 字符串文字?

Barbara Streisand
Barbara Streisand原创
2024-12-21 02:50:09165浏览

How to Properly Unescape Java String Literals?

如何在 Java 中对 Java 字符串进行转义?

问题

从 Java 源代码中提取字符串并在函数中使用它们是必要的传递文字的未转义版本。这涉及将像 n 这样的转义序列转换为换行符和单个 .

取消转义函数

1。 Apache Commons Lang org.apache.commons.lang.StringEscapeUtils.unescapeJava()

虽然此函数存在,但它有几个限制:

  • 忽略 null
  • 不处理八进制
  • 无法处理符合正则表达式的转义符,例如 a、e 和 cX
  • 不支持按数字排列的逻辑 Unicode 代码点
  • 使用 UCS-2 代码而不是 UTF-16 代码

2。 Custom Unescaper

另一种解决方案是自定义函数,它可以解决 Apache 代码的限制:

public static final String unescape_perl_string(String oldstr) {
    /* ... Code ... */
}

此函数提供全面的脱义功能,包括:

  • 标准转义(a、e、f、n、r、 t)
  • 八进制转义符 ( , N, NN, N, NN, NNN)
  • 控制字符 (?cX)
  • 旧的十六进制转义符 (xXX)
  • Perl 十六进制转义 (!x{XXX})
  • 不受支持转义(b 被传递)

以上是如何正确取消转义 Java 字符串文字?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn