Rolf B: Ergebnisse scheinen(sic: „scheinen“) korrekt zu sein; Teil einer Sortierfunktion

Beitrag lesen

Hallo Raketenwilli,

Dass 0 für gleich steht, < 0 für "Kleiner" und > 0 für "Größer", das ist dokumentiert und nicht mein Problem. Dass der konkrete positive oder negative Wert unspezifiziert ist, ist ebenfalls spezifiziert und ebenfalls nicht mein Problem. Das ist in anderen Sprachen auch so.

Es geht mir um folgendes: Wenn ich einen klassischen case-sensitive Vergleich mit dem < Operator mache, ergibt sich "roh" > "Rot", weil die Kleinbuchstaben hinter den Großbuchstaben folgen.

Aber der Collator macht das dem Anschein nach anders, er gibt beim case-sensitive Vergleich "roh" < "Rot" zurück, OBWOHL "r" > "R" ist. Das ist deshalb merkwürdig, weil das vertraute Verhalten doch so aussieht, dass für zwei Strings a, b mit a < b folgt, dass für zwei Präfixe dieser Strings mit Länge n die Relation left(a,n) <= left(b,n) gilt. Aber das ist beim Collator nicht der Fall.

Hier gilt nämlich (mit caseFirst:"upper") "roh" < "Rot", aber "ro" > "Ro".

Und ich wundere mich nun, ob ich eine Meise unter dem Pony der Platte habe, ob das eine Laune der Browser-Implementatoren ist oder ob sich das irgendwo in einer Spezifikation findet. ECMA-402 verweist da ständig auf Unicode, aber in dem Unicode Gestrüpp finde ich mich nicht zurecht.

Ich frage doch bloß für einen Freund Wiki-Artikel…

Rolf

--
sumpsi - posui - obstruxi