Сортировка списка строк с числовыми значениями - PullRequest
8 голосов
/ 07 февраля 2010

У меня есть список строк, который, скорее всего, но не гарантированно содержит список чисел, то есть

{"1", "6", "2", "21", "89"}

Как можно отсортировать список строк, чтобы он всегда отображался в порядке возрастания?

Я не могу сначала разобрать строку в числовую, прежде чем выполнять сортировку просто потому, что строка может содержать не числовые символы. И я не хочу просматривать список, проверять приведение каждого компонента к числовому и выполнять сортировку. Для этого уже существует библиотека?

В случае смешивания числовых и нечисловых строковых элементов числовые строки всегда имеют приоритет над нечисловыми.

Ответы [ 3 ]

8 голосов
/ 07 февраля 2010

Ранее этот вопрос задавался немного по-другому, но тот же ответ все еще применяется, поскольку у них есть реализация C # на одном сайте.

SO Вопрос: Сортировка по строке, которая может содержать число

Ответ предоставлен ScArcher2 : Алфавитный алгоритм

1 голос
/ 07 февраля 2010

Вы хотите отсортировать элементы, как проводник Windows XP с файлами. См. эту статью о том, как это сделать.

0 голосов
/ 07 февраля 2010

Если это C #, это то, для чего предназначен Int32.TryParse ().

Если это C ++, тогда std :: string :: find_first_not_of - достойная ставка. Передайте ему строку, содержащую символы ascii для цифр от 0 до 9 (плюс знаки минус и плюс?), И если он возвращает -1, то это целое число.

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