Строки сортировки Java в порядке кода (UTF-32) - PullRequest
2 голосов
/ 22 января 2010

Кроме преобразования в байты UTF-8 или написания функции сравнения, которая выполняет итерацию и сравнение, есть ли какой-то метод, который мне не хватает в JDK 1.6, который сравнивает две строки в полном порядке кодовой точки Unicode вместо кодовой точки UCS-2 заказ?

Я ценю, что это не сложная вещь для кодирования. Однако я был озадачен тем, что в 1.6 есть различные API-интерфейсы «codepoint» в java.lang.String, а также система Collation, но, очевидно, нечем просто сравнить две строки, не посмеиваясь над суррогатами.

Для удобства комментатора я должен передать некоторые данные инструменту, который хочет строки в этом порядке.

Ответы [ 2 ]

1 голос
/ 23 января 2010

AFAIk, API не имеет такого метода, но это должно быть тривиально реализовать его самостоятельно. Просто из любопытства: зачем тебе что-то подобное?

0 голосов
/ 03 июня 2018

Ради полноты ее моего решения проблемы. Может быть, есть лучшее решение:

   String sortedText = text
      .codePoints()
      .sorted()
      .mapToObj(i -> String.valueOf(Character.toChars(i)))
      .collect(Collectors.joining(""));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...