【问题标题】:\x Escape in Java?\x 在 Java 中转义?
【发布时间】:2011-04-06 12:56:19
【问题描述】:

我想知道 Java 中是否有与 C++ 中类似的十六进制 (\x) 转义。 例如:

char helloworld[] = "\x48\x45\x4C\x4C\x4F\x20\x57\x47\x52\x4C\x44";
printf("%s", helloworld);

到目前为止,Java 中没有任何十六进制 (\x) 转义。有没有一种无需将一堆十六进制数字连接在一起即可轻松使用的替代方法?

【问题讨论】:

    标签: java hex escaping


    【解决方案1】:

    Java 中的字符串始终以 UTF-16 编码,因此它使用 Unicode 转义符:\u0048。也支持八进制字符:\110

    【讨论】:

      【解决方案2】:

      请注意,Unicode 转义很早就被解析了。当

        String s = "text\u000d\u000a";
      

      导致编译器错误,因为您应该使用 "text\015\012""text\r\n"

      【讨论】:

      • -1:字符串文字中允许八进制转义,并且不会像您建议的那样尽早解析。上面的代码 sn-p 按预期工作。见 3.10.6。 docs.oracle.com/javase/specs/jls/se7/html/jls-3.html中的字符和字符串文字的转义序列
      • @adrian - 你是对的,我得到了八进制转义和 unicode 转义错误的方式 - 我会修复答案(如果可能的话)。
      • 为什么不删除答案?
      • 因为现在有用
      猜你喜欢
      • 2015-11-08
      • 1970-01-01
      • 2010-10-27
      • 2013-06-25
      • 1970-01-01
      • 1970-01-01
      • 2012-03-23
      • 1970-01-01
      相关资源
      最近更新 更多