2014-12-06 71 views
-1

在我的应用程序的UI中,我使用的Unicode字符串范围从“\ u0900”到“\ u0959”,这些字符串与一些梵文字符相当于unicode。 我想动态生成这些Unicode字符串来设置UI的按钮。 代码:未能动态生成Unicode字符串

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

失败可怕,字符串显示像,\ U900到\ u959,而不是梵文字符themsleves。 如何解决这个问题?

回答

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 
+0

谢谢!那么你是如何研究Java的,你使用过哪些书。我对逻辑有很好的把握,但是失败的知识。你可以命名一些你用来了解java的书吗? – Deepeshkumar 2014-12-06 03:22:27

+0

@Deepeshkumar我推荐_Effective Java_。 – August 2014-12-06 03:28:45