将字符串解析为char?

时间:2012-11-09 20:59:23

标签: java string char

所以在Java中如何将字符串(“\ u000A”)设置为char? 我从文件中获取了String,所以我不能这样说: char c ='\ u000A';

4 个答案:

答案 0 :(得分:3)

检查StringEscapeUtils

  
    

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>