所以在Java中如何将字符串(“\ u000A”)设置为char? 我从文件中获取了String,所以我不能这样说: char c ='\ u000A';
答案 0 :(得分:3)
Escapes和unescapes用于Java,Java脚本,HTML和XML的字符串。
这应该适用于你想要的东西
char c = StringEscapeUtils.unescapeJava("\\u000A").charAt(0);
双反斜杠是用Java编码“\ u000A”。
答案 1 :(得分:1)
是的,你可以,这是完全有效的代码:
char c = '\uD840';
代码中的示例'\u000A'
恰好是一个无效的Unicode字符(读取时可能是解码问题?)。但是所有有效的Unicode字符都可以在单引号之间传递。
答案 2 :(得分:0)
如果没有额外的库,您可以使用这只是char的十六进制值的事实。该表达式的值是该字符:
(char)Integer.parseInt(input.substring(2, 16))
该技术甚至适用于代理对,因为那时你有两个单独的\ u表示法。
答案 3 :(得分: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是\
的十进制值)。 / p>