В информатике строки обычно сортируются посимвольно, предпочтительный порядок сортировки (для стандартного набора английских символов):
- Сначала нулевые символы
- Вслед за whitepsace
- С последующими символами
- За которыми следуют числовые символы в явном числовом порядке
- Вслед за буквенными символами в явном алфавитном порядке
При сортировке символов обычно строчные буквы располагаются перед прописными.
Так, например, если бы мы сортировали / сравнивали:
тест я нг
тест e r
Тогда «тестер» будет стоять перед «тестированием» - первым другим символом в строке будет 5-й, а «е» стоит перед «i».
Аналогично, если сравнивать:
тест
Тестирование
Тогда в этом случае «test» будет первым - снова строки будут идентичны до 5-го символа, где заканчивается строка «test» (т. Е. Без символа), которая становится перед любым буквенно-цифровым символом.
Обратите внимание, что это может привести к некоторым нелогичным результатам при работе с числами - например, попробуйте отсортировать строки "50" и "100" - вы обнаружите, что "100" приходит до"50" , Зачем? потому что строки отличаются в символе 1 и «5» следует после «1».
Почти во всех языках есть функция, которая сделает все вышеперечисленное для вас!
Вы должны использовать эту функцию вместо того, чтобы пытаться сортировать строки самостоятельно! Например:
// C#
string[] myStrings = {"test","testertest","testing","tester","testingtest"};
Array.Sort(myStrings);