2010-02-07 17 views
8

ich eine Liste der Zeichenfolge haben, die am wahrscheinlichsten ist, aber keine Liste der Numerik enthalten garantiert, dhSort String-Liste mit numerischen Werten

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

Was die Art und Weise ist die String-Liste zu sortieren, so dass es immer in aufsteigender Reihenfolge erscheinen wird?

Ich kann die Zeichenfolge nicht zuerst numerisch analysieren, bevor Sie die Sortierung durchführen, weil die Zeichenfolge nicht numerische Zeichen enthalten kann. Und ich möchte nicht durch die Liste gehen und jede Komponente nach Zahlen durchsuchen und sortieren. Gibt es zu diesem Zweck bereits eine Bibliothek?

In dem Fall, in dem wir Mischnumerik und nicht numerische Zeichenfolgenelemente haben, haben numerische Zeichenfolgen immer Vorrang vor den nicht numerischen Zeichenfolgen.

+1

Die Phrase, die Sie suchen, ist "natürliche Sortierung". – Ken

Antwort

0

Wenn dies C# ist, ist das für Int32.TryParse().

Wenn dies C++ ist, dann ist std :: string :: find_first_not_of eine gute Wette. Übergeben Sie eine Zeichenfolge, die die ASCII-Zeichen für die Ziffern 0 bis 9 (plus Minus- und Pluszeichen?) Enthält, und wenn sie -1 zurückgibt, handelt es sich um eine Ganzzahl.

+2

Nein, er möchte in der Lage sein, Listen wie diese zu sortieren: {a1, a10, a11, a2, a3} auf natürliche Weise: {a1, a2, a3, a10, a11}. TryParse wird offensichtlich nicht funktionieren. – Steven

1

Sie wollen Elemente sortieren, wie nur Windows XP Explorer mit Dateien der Fall ist. Siehe dazu this article.

Verwandte Themen