Search the FirstSpirit Knowledge Base
Hallo Community,
Ich wollte mal fragen, ob vielleicht Jemand dieses folgende Problem mit FirstSpirit gelöst hat?
Es geht um die Sortierung Objekten, speziell in dem Fall von Objekten aus einem contentSelect, die nach Anzeigenamen sortiert werden sollen. Dieser enthält nun mit Text und Zahlen:
Bsp.: { "text 1", "text 2", ... "text 10"}
Die sortierte Ausgabe sieht ja dann wie folgt aus:
- text 1
- text 10
- text 2
...
Ich möchte nun gerne, dass die 10 erst nach der 2 ausgegen wird.
Dies ist wahrscheinlich ein bekanntes Problem, aber gibt es dafür auch eine bekannte Lösung?
Danke und viele Grüße
Marcel
Sie können über ein Skript einen eigenen Sortieralgorithmus implementieren, der die Einträge passend sortiert. Ggf. ist auch ein entsprechender Lambda-Ausruck schon ausreichend.
Hallo Community,
wir haben das Problem jetzt erstmal gelöst.
Bei der Übergabe der Funktion an die Sortierung haben wir mit einer RegEx die Zahlen verändert:
$CMS_FOR(myList, list.sort(x -> x.Name.toLowerCase().replaceAll( "(\b[0-9][a-z]*\b)", "0$1")))$
Das hat das Problem erstmal behoben.
Ich hatte nur die Hoffnung es gibt ggf. etwas adäquates zum java.tex.Collator.
Danke und viele Grüße
java.text.Collator können Sie ohne Probleme innerhalb eines Skriptes verwenden, welches sie über CMS_RENDER in der Vorlage aufrufen können.