Существует ли какое-то соглашение о сортировке? - PullRequest
1 голос
/ 02 июля 2019

Существует ли какое-то установленное соглашение о сортировке строк (символов)?Некоторое соглашение, которое должно играть ту же роль, что и PCRE для регулярных выражений.

Например, если вы попытаетесь отсортировать 0A1b-a2_B (каждый символ в отдельной строке) с Sublime Text (Ctrl-F9) и Vim (:%sort), результат будет таким же (см. Ниже).Однако я не уверен, что так будет и с другими редакторами и IDE.

- 
0 
1 
2 
A 
B 
_ 
a 
b 

Ответы [ 2 ]

1 голос
/ 02 июля 2019

Существует два основных способа сортировки символьных строк:

  • Лексикографическое: числовое значение либо значений кодовой точки, либо значений кодовой единицы, либо значений сериализованной кодовой единицы (байты). Для некоторых кодировок символов все они будут одинаковыми. Алгоритм очень прост, но этот метод не дружественный человеку.

  • Культура / Локаль: для каждой поддерживаемой культуры используется порядковая база данных. Для набора символов Unicode он называется CLDR . Кроме того, при применении сортировки для Unicode сортировка может учитывать кластеры графем. Кластер графем - это базовая кодовая точка, за которой следует последовательность из нулевых или более непробельных (применяемых как расширения предыдущего глифа) меток.

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

  • Иногда люди читают формат в строки, например, последовательность букв, за которыми следует последовательность цифр, или один из нескольких форматов даты. Это очень специализированные виды, которые должны применяться там, где ожидают пользователи. Примечание. Формат даты ISO 8601 для юлианского календаря сортируется правильно независимо от метода (для всех кодировок символов?).
1 голос
/ 02 июля 2019

Обычно символы сортируются по их числовому значению. Хотя раньше это применялось только к символам ASCII, это также было принято и в кодировках Unicode. http://www.asciitable.com/

Если никакое предпочтение не дается наоборот, это де-факто стандарт для сортировки символов. За исключением буквенных символов, порядок несколько произвольный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...