2017-02-07 9 views
0

Класс java.lang.String всегда преобразует данные во внутреннее представление UTF-16 и подразумевает всегда передачу кода декодера.Сравнение строк в Java без java.lang.String

У меня есть строки UTF-8, представленные в байтовых [] объектах, и я хотел бы «сравнить» их без необходимости создания объектов java.lang.String. Стандартный класс «Collator» должен преобразовывать данные в java.lang.String.

Я бегу OpenJDK/Oracle Java8

+0

Вы можете увидеть, можете ли вы использовать 'java.lang.String.String (byte [] bytes, String charsetName) вместо этого генерирует конструктор UnsupportedEncodingException'? Документация: https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#String(byte[],%20java.nio.charset.Charset) –

+0

@PavanKumar OP говорит, что они не хотят конвертировать из UTF-8 в UTF-16. – RealSkeptic

+0

Кажется, что OP не хочет объекта 'String', поскольку он использует UTF-16, но если он работает без UTF-16, все должно быть хорошо. Может быть, он может подтвердить. –

ответ

2

Вы можете использовать java.util.Arrays.equals (pt1 [], pt2 []) для сравнения двух массивов. Он работает со всеми примитивными типами.

+0

Мне нужно «больше, чем», он должен проверять специальные последовательности Unicode, например, сравнение исходного байта не полезно –