Какой последний символ в лексикографическом порядке? - PullRequest
2 голосов
/ 31 марта 2012

Я хотел бы знать, какой последний символ существует в Java?У меня есть программа, которая работает со словами, упорядоченными в лексикографии, я просто хочу убедиться, что определенное слово будет последним, поэтому я хочу знать, какой это должен быть символ?

отредактировано: Я не имею в виду последний символ из строки.Проще говоря, я хотел бы знать, каким должен быть первый символ в строке, который я бы хотел считать последним в лексическом порядке - обратите внимание: когда я использую строку. compareTo метод?

Ответы [ 3 ]

2 голосов
/ 31 марта 2012

Если вы говорите о простых char значениях, то ответ будет '\uffff'. (Значения Java char на самом деле являются просто 16-разрядными целыми числами со знаком, и '\uffff' или 65535 - это наибольшее целое число, представляемое этим типом. \u - это синтаксис Java Unicode escape.)

Однако это игнорирует тот факт, что один экземпляр Java char может представлять только кодовые точки Unicode, которые попадают в плоскость 0 Unicode (BMP). В настоящее время стандарт определяет плоскости от 0 до 16. Кодовые точки в более высоких плоскостях представлены в виде пар значений Java char; они называются суррогатными парами.

Вам нужно будет решить, нужно ли вашему приложению обработать суррогатные пары. (Это зависит от того, хотите ли вы поддерживать текст, который использует «эзотерические» символы в более высоких плоскостях Unicode.) Если это произойдет, вы не сможете использовать стандартный метод String.compareTo и тому подобное. Я рекомендую вам взглянуть на библиотеки ICU .

2 голосов
/ 31 марта 2012

Он не представляет действительный символ Unicode, но наибольшее значение для char и, следовательно, «последний» символ, составляет 65535.

char omega = '\uFFFF';
0 голосов
/ 31 марта 2012

Вы хотели последний символ из строки?если так:

    s.charAt(s.length()-1);
...