2010-02-07 13 views
8

Mam listę sznurka, który jest najbardziej prawdopodobne, ale nie gwarantuje, że zawiera listę numerycznych, czyliSortuj listę String z liczbowych

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

Jaki jest sposób sortowania listy ciągów tak że zawsze pojawi się w porządku rosnącym?

nie mogę analizować ciąg numeryczny pierwszy przed wykonaniem sortowania po prostu dlatego, że ciąg może zawierają znaki spoza numerycznych. Nie chcę przeglądać listy i sprawdzać każdego komponentu pod względem numerycznym i sortować. Czy istnieje już biblioteka do tego celu?

W przypadku, gdy mamy mieszane elementy numeryczne i nieliczbowe elementy łańcuchowe, łańcuchy liczbowe mają zawsze pierwszeństwo nad numerycznymi.

+1

Wyrażenie, którego szukasz, to "sortowanie według porządku naturalnego". – Ken

Odpowiedz

0

Jeśli jest to C#, właśnie do tego służy Int32.TryParse().

Jeśli jest to C++, to std :: string :: find_first_not_of jest przyzwoitym zakładem. Podaj ciąg znaków zawierający znaki ASCII dla cyfr od 0 do 9 (plus znaki minus i plus?), A jeśli zwraca -1, to jest liczbą całkowitą.

+2

Nie, on chce móc sortować listy takie jak: {a1, a10, a11, a2, a3} w naturalny sposób: {a1, a2, a3, a10, a11}. TryParse oczywiście nie działa. – Steven

1

Chcesz posortować elementy, podobnie jak Windows XP Explorer robi z plikami. Zobacz, jak to zrobić: this article.

Powiązane problemy