那么在 Java 中,如何将像 ("\u000A") 这样的字符串粘贴到 char 中呢?我从一个文件中得到了那个字符串,所以我不能这样说: char c = '\u000A';
问问题
1067 次
4 回答
3
为 Java、Java Script、HTML 和 XML 转义和取消转义字符串。
这应该适用于您想要的
char c = StringEscapeUtils.unescapeJava("\\u000A").charAt(0);
双反斜杠是在 Java 中编码“\u000A”。
于 2012-11-09T21:04:44.953 回答
1
是的,你可以,这是完全有效的代码:
char c = '\uD840';
您的代码中的示例'\u000A'
恰好是无效的 Unicode 字符(可能是阅读时的解码问题?)。但是所有有效的 Unicode 字符都可以在单引号之间传递。
于 2012-11-09T21:01:12.080 回答
0
作为对 Oscar Lopez 的回答,它编译并执行得很好:
public class TestUnicode {
static public void main(String[] argv) {
System.out.println("This is one line"); \u000A System.out.println("This is another line");
}
}
要理解的重要一点是,在 Java 编译器中,\uXXXX
字符是在扫描程序时翻译的,而不是在将字符插入字符串文字时(这是其他\
转义的规范)。将\u000A
上面的内容替换为\n
,程序不会编译,而是编译器会报告“非法字符:\92”(92 是 的十进制值\
)。
于 2012-11-10T00:51:10.553 回答
0
如果没有额外的库,您可以使用这只是 char 的十六进制值这一事实。这个表达式的值就是那个字符:
(char)Integer.parseInt(input.substring(2, 16))
该技术甚至适用于代理对,因为这样您就有两个单独的 \u 符号来表示该对。
于 2012-11-09T21:28:53.587 回答