Лексикографическое упорядочение строк, содержащих знаки препинания

При объявлении зависимостей в Gradle мне нравится хранить свои зависимости в алфавитном порядке, однако я сталкивался с ситуацией, когда я не уверен, каким будет правильный порядок. Википедия утверждает "Также существуют различные соглашения для обработки строк, содержащих пробелы, измененные буквы (например, с диакритическими знаками) и небуквенные символы, такие как знаки препинания», однако нет ссылки на то, какими могут быть эти соглашения.

В частности, я не уверен, в каком порядке я должен перечислять зависимости ниже.

compile(group: 'commons-pool', name: 'commons-pool', version: '1.2')
compile(group: 'com.google.protobuf', name: 'protobuf-java', version: '2.0.3')

Существует ли задокументированное соглашение по обработке лексикографического порядка знаков препинания и где его найти?


person Mike Rylander    schedule 14.04.2014    source источник
comment
Я думаю, что вы должны использовать сопоставление stackoverflow.com/questions/6810619/   -  person user2485710    schedule 14.04.2014
comment
@user2485710 user2485710 Можете ли вы указать мне на какое-то конкретное сопоставление, включающее знаки препинания?   -  person Mike Rylander    schedule 14.04.2014
comment
Я не совсем знаком с этим, но я знаю, что по некоторым причинам эти проблемы возникают несколько раз в сообществах Java и MySQL, вероятно, потому, что Java — старый и полнофункциональный язык/фреймворк, а MySQL или общий SQL часто работать с текстом и алгоритмами упорядочивания. Попробуйте выполнить поиск в Интернете с этими терминами, если никто не добавляет ничего нового к обсуждению.   -  person user2485710    schedule 14.04.2014


Ответы (1)


Глядя на значения ASCII, '.' (ASCII 46) предшествует 'm' (ASCII 109). Это работает для сравнения основных знаков препинания с буквами, однако вы должны помнить, что в ASCII заглавная буква «Z» стоит перед строчной «а».

UTS #10: Алгоритм сопоставления Unicode охватывает сравнение строк, содержащих знаки препинания.

Этот отчет представляет собой спецификацию алгоритма сопоставления Unicode (UCA), в которой подробно описывается, как сравнивать две строки Unicode, сохраняя при этом соответствие требованиям стандарта Unicode. UCA также предоставляет таблицу элементов сопоставления Unicode по умолчанию (DUCET) в качестве данных, определяющих порядок сопоставления по умолчанию для всех символов Unicode.

person Mike Rylander    schedule 18.04.2014