Есть ли стандартный метод для преобразования строки типа "\ uFFFF" в символ, означающий, что строка из шести символов содержит представление одного символа Юникода?
Java: преобразовать строку "\ uFFFF" в char
Ответ 1
char c = "\uFFFF".toCharArray()[0];
Значение напрямую интерпретируется как искомая строка, и вся последовательность реализуется как один символ.
Другой способ, если вы собираетесь жестко закодировать значение:
char c = '\uFFFF';
Обратите внимание, что \uFFFF
не является надлежащим символом юникода, но попробуйте, например, с помощью \u041f
.
Ответ 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'