2014-12-06 1 views
-1

В пользовательском интерфейсе моего приложения я использую строки Unicode от «\ u0900» до «\ u0959», которые являются уникодным эквивалентом некоторых символов Деванагари. Я пытаюсь сгенерировать эти строки Юникода динамически, чтобы установить над кнопками пользовательского интерфейса. Код:Невозможно произвести строки 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

Вы не можете создать escape-последовательность unicode, подобную этому ("\u...." распознается только компилятором). Вместо перебрать значения символов и создать строку с String#valueOf:

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

Обратите внимание, что я Приставку номера с 0x, что означает, что номер шестнадцатеричного. Я делаю это, потому что escape-последовательности Unicode состоят из 4 hexadecimal digits:

UnicodeEscape: 
    \ UnicodeMarker HexDigit HexDigit HexDigit HexDigit 
+0

Спасибо! Ну, как вы изучали java, какие книги вы использовали. Я хорошо разбираюсь в логике, но не знаю. Можно ли назвать некоторые книги, которые вы использовали для понимания java? – Deepeshkumar

+0

@Deepeshkumar Я бы рекомендовал _Effective Java_. – August

Смежные вопросы