Подтвердить что ты не робот

Java: преобразовать строку "\ uFFFF" в char

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

4b9b3361

Ответ 1

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

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

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

char c = '\uFFFF';

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

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

Ответ 2

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

String s = "\\u20ac";

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

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

Ответ 3

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

String s = StringEscapeUtils.unescapeJava("\\u20ac\\n"); // s contains the euro symbol followed by newline

Ответ 4

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'