Тот, кто на первом месте, несомненно, выигрывает.
Обычная сортировка лексикографически сортирует имена файлов в виде последовательностей символов (ну, возможно, с особой обработкой расширений файлов, хотя это может быть реализовано простым порядком .
первым среди символов): 'f', 'i', 'l', 'e', '1', 'f', 'i', 'l', 'e', '1', '0', '0'
.
Естественная сортировка лексикографически сортирует имена файлов как последовательности токенов, где каждый токен является либо символом, либо числом: 'f', 'i', 'l', 'e', 1, 'f', 'i', 'l', 'e', 100
. Сравнение между символами - это нормальный порядок символов, сравнение между числами - это обычный целочисленный порядок, а сравнение между символом и числом ставит числа перед любым символом (кроме .
). Наконец, вам нужно разорвать связь между file1
и file01
, поэтому «числа» - это не просто числа, им нужно «знать» свое первоначальное представление на случай, если оно зашло так далеко.
Я бы вообще-то не советовал спрашивать пользователей. Если у них действительно сильное мнение о том, как они хотят, чтобы их файлы были отсортированы, тогда ОК, достаточно справедливо. В противном случае они могут не знать точно, чего они «должны» ожидать, поэтому для аналитика / программиста имеет больше смысла выяснять, что «нормально», чем для пользователя. Конечно, вы можете «спросить» их косвенно с помощью юзабилити-тестирования, если это достаточно большая сделка, чтобы того стоить. Я считаю, что если вы задаете пользователям неправильные вопросы, они чувствуют необходимость угадывать ответы, и нет смысла кодировать что-то произвольное только потому, что это то, о чем думал пользователь на месте.
Независимо от того, что пользователи думают, что правила должны быть такими, скорее всего, они действительно получат лучшее, независимо от того, что их ОС делает по умолчанию при перечислении файлов в своем файловом менеджере, файловых диалогах и подобных вещах. Поэтому я бы предложил им это (или, может быть, ближе всего к тому, что я могу написать, не тратя много их денег на мелкие крайние случаи), и если они все еще недовольны, выясните, почему.