无法动态生成unicode字符串

时间:2014-12-06 03:05:51

标签: java unicode

在我的应用程序的UI中,我使用的是Unicode字符串,范围从" \ u0900"到" \ u0959"这是unodeode相当于一些梵文字符。 我试图动态生成这些Unicode字符串以设置UI的按钮。 代码:

   for(int i=900;  i<=959 ; i++){
        String buttontext = "\\"+"u"+Integer.toString(i);
        this.add(new CreateButton(buttontext)); //CreateButton extends JButton.
    }

它失败的可怕,字符串显示为\ u900而不是梵文字符themsleves。 如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您无法像这样创建一个unicode转义序列("\u...."只能被编译器识别)。而是循环遍历字符值并使用String#valueOf创建字符串:

for (char i = 0x900; i <= 0x959; i++) {
    String buttontext = String.valueOf(i);
    // ...
}

请注意,我在数字前加0x,这意味着这些数字是十六进制。我这样做是因为unicode转义序列由4 hexadecimal digits组成:

UnicodeEscape:
    \ UnicodeMarker HexDigit HexDigit HexDigit HexDigit