Ява: “\\uFFFF Последовательности Новообращенного” в случайную работу

Есть ли стандартный метод, чтобы преобразовать последовательность как «\uFFFF» в характер, означающий, что последовательность шести характеров содержит представление одного unicode характера?

29
задан Bozho 24 January 2010 в 10:16
поделиться

4 ответа

char c = "\uFFFF".toCharArray()[0];

Значение интерпретируется непосредственно как нужная строка, а вся последовательность реализуется как один символ.

Другой способ, если вы собираетесь жестко закодировать значение:

char c = '\uFFFF';

Обратите внимание, что \uFFFF не кажется правильным символом юникода, но попробуйте, например, с \u041f.

Читайте здесь об экранированиях юникода

34
ответ дан 28 November 2019 в 01:00
поделиться
String charInUnicode = "\\u0041"; // ascii code 65, the letter 'A'
Integer code = Integer.parseInt(charInUnicode.substring(2), 16); // the integer 65 in base 10
char ch = Character.toChars(code)[0]; // the letter 'A'
6
ответ дан 28 November 2019 в 01:00
поделиться

Здесь обратная косая черта снимается (так что вы видите две из них, но строка s на самом деле всего 6 символов). Если вы уверены, что у вас в начале строки есть точно "\u", просто пропустите их и конвертируйте шестнадцатеричное значение:

String s = "\\u20ac";

char c = (char) Integer.parseInt( s.substring(2), 16 );

После этого c должен содержать символ евро, как и ожидалось.

19
ответ дан 28 November 2019 в 01:00
поделиться

Если вы анализируете ввод с помощью экранированных символов в стиле Java, возможно, вы захотите взглянуть на StringEscapeUtils.unescapeJava . Он обрабатывает экранирование Unicode, а также символы новой строки, табуляции и т. Д.

String s = StringEscapeUtils.unescapeJava("\\u20ac\\n"); // s contains the euro symbol followed by newline
18
ответ дан 28 November 2019 в 01:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: