Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Как создать char из \uFFFF


Автор: sergejzr 2.1.2007, 00:36
Приветы Java-гуру!
У меня есть текст в котором юникодовские буквы заескейпены \u. В общем текст из XML-файла.
Как мне сделать из номера char? Необходимо проверять, буква ли это, или просто знак..

Автор: bytes 2.1.2007, 01:40
какие буквы?
Латин-буквы или как ASCII диапозон (65-122)
а другие буквы (русские и др.) надо определить.
Код

\uXXXX - XXXX шестнадцатеричный, X=(0..9, A..F)

Автор: sergejzr 2.1.2007, 01:44
Буквы в UTF-16 (XML-файл)

Автор: bytes 2.1.2007, 01:50
статик метод... что то можно.
Код
boolean Character.isLetter(char ch)

Автор: powerOn 2.1.2007, 02:01
Последовательность символов, записаная в формате \uXXXX можно легко преобразовать в строку.
Код

String s = "\u0045" + "\u0046" + "\u0047";
System.out.println(s);


а получить отдельный символ из строки можно методом charAt(). Далее можно работать с отдельным символом,  как правильно заметил bytes, используя для проверки сттические методы класса Character

Автор: sergejzr 2.1.2007, 02:03
В том то и дело, что мне как -то надо взять этот char. В строке например стоит
"Europ\u00E4ische"
Если бежать по буквам, будет:

'E' 'u' 'r' 'o' 'p' '\' 'u' '0' '0' 'E' '4' 'i' 's' 'c' 'h' 'e'

Теперь, когда я нашёл "\\u"  я могу считать код 00Е4. Как мне проверить, буква ли этот код?

Добавлено @ 02:04 
Цитата(powerOn @  2.1.2007,  01:01 Найти цитируемый пост)
Последовательность символов, записаная в формате \uXXXX можно легко преобразовать в строку.

Да, ДО компиляции файла. А у меня строки в таком виде из базы приходят.

Автор: bytes 2.1.2007, 02:15
считай \u00E4 в String...

Код

String s="\u00E4";
char ch=s.charAt(0);
...
if // Character.isLetter(ch)
...

Автор: sergejzr 2.1.2007, 02:25
Ребята. Тут у нас с вами непонятка выходит.
String s="\u00E4"; -> это в исходнике верно? При копиляции машинка ессно правильно интерпретирует его. 
А теперь попробуй эту же строку записать точно также в файл, а затем считать. Вот в таком виде у меня и есть.


ПС:
т.е у меня строка:
Код

String s="\\u00E4";

Автор: powerOn 2.1.2007, 02:59
Придется руками разбирать строку, искать числа которые стоят после \u. Преобразовывать эти числа в шестнадцетеричные. Далее по ним конструировать Character. Ну и в итоге проверять тип символа.

это:
Код

        String s = "\u0045";
        System.out.println(s);


и вот это:
Код

System.out.println("" + new Character((char) 0x45));


дадут E на экране.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)