Hi Beat.
Liefert das folgende im wesentlichen das, was Du willst?
Du zerlegst die Strings in (maximale) Tokens, die jeweils nur aus numerischen[1] oder nur aus nicht-numerischen Zeichen bestehen. (Sagen wir Typ num bzw. string).
Du vergleichst zwei Tokens wie folgt:
- beide Typ num: numerischer Vergleich (klar)
- beide Typ string: string-Vergleich (Achtung: [2])
- Typ num < Typ string
und zwei Strings anhand des ersten Paares von ungleichen Tokens. Gibts die nicht, ist der String mit weniger Tokens kleiner. (Haben sie gleich viele Tokens, die jeweils gleich sind, dann sind - klar - auch die Strings gleich.)
[1] Was ist mit Minuszeichen? Ist "-3" < "-2"? Ich würde denken, ja, das wäre natürlich, d.h. ein numerisches Token kann (u.U.) ein Minuszeichen haben. Was ist mit "a-3" und "a-2"? Und: Was ist mit Pluszeichen? Ist "+3" == "3"?
Viele Grüße,
der Bademeister