Вы можете использовать java.nio.charset.CharsetDecoder , чтобы сделать это.Вам понадобятся ByteBuffer
и CharBuffer
.Поместите данные в ByteBuffer
, затем используйте CharsetDecoder.decode(ByteBuffer in, CharBuffer out, boolean endOfInput)
для чтения в CharBuffer
.Тогда вы можете получить кодовую точку, используя Character.codePointAt(char[] a, int index)
.Важно использовать этот метод, потому что если ваш текст содержит символы вне BMP, они будут переведены в два символа, поэтому недостаточно прочитать только один символ.
При использовании этого метода вам нужно создать только два символабуферизуется один раз, после чего никакие новые объекты не будут созданы, если не произойдет какая-либо ошибка.