Другие ответы здесь либо поддерживают только Unicode до U + FFFF (ответы, касающиеся только одного экземпляра char), либо не говорят, как добраться до фактического символа (ответы останавливаются на Character.toChars () или с использованием неправильного метода после этого), так что добавляю и свой ответ здесь.
Вот что необходимо сделать для поддержки дополнительных кодовых точек:
// this character:
// http://www.isthisthingon.org/unicode/index.php?page=1F&subpage=4&glyph=1F495
// using code points here, not U+n notation
// for equivalence with U+n, below would be 0xnnnn
int codePoint = 128149;
// converting to char[] pair
char[] charPair = Character.toChars(codePoint);
// and to String, containing the character we want
String symbol = new String(charPair);
// we now have str with the desired character as the first item
// confirm that we indeed have character with code point 128149
System.out.println("First code point: " + symbol.codePointAt(0));
Я также быстро проверил, какие методы преобразования работают, а какие нет.
int codePoint = 128149;
char[] charPair = Character.toChars(codePoint);
String str = new String(charPair, 0, 2);
System.out.println("First code point: " + str.codePointAt(0)); // 128149, worked
String str2 = charPair.toString();
System.out.println("Second code point: " + str2.codePointAt(0)); // 91, didn't work
String str3 = new String(charPair);
System.out.println("Third code point: " + str3.codePointAt(0)); // 128149, worked
String str4 = String.valueOf(codePoint);
System.out.println("Fourth code point: " + str4.codePointAt(0)); // 49, didn't work
String str5 = new String(new int[] {codePoint}, 0, 1);
System.out.println("Fifth code point: " + str5.codePointAt(0)); // 128149, worked