# Sortierung von Umlauten in einer JTable



## dbausnnd (15. Jul 2014)

Hallo ich nutze eine JTable in der inein TableRowSorter hinterlegt habe damit die einzelnen spalten sortiert werden können. Dabei ist aufgefallen das Java nicht korrekt sortiert. Die Umlaute werden nicht an der korrekten stelle einsortiert Bsp:

Baumann
Böggemann
Bresch
Brönstrup
Bruckschen
Burhmann

Dies ist eine Auflistung mit der korrekte Sortierung. In der JTable wird das wie folge dargestellt:

Baumann
Bresch
Bruckschen
Brönstrup
Burhmann
Böggemann

Die Umlaute werden ans Ende der Liste gesetzt. Wie kann ich die Sortierung beeinflussen?

Vielen Dank für die Hilfe.

MfG

dbausnnd


----------



## Times (16. Jul 2014)

Java sortiert das schon korrekt..^^

Die Umlaute stehen in der ASCII-Tabelle weit hinter den Buchstaben A-Z und nicht mittendrin... wie auch im normalem Alphabet: Da kommten die Umlaute ja auch nicht nach dem a, o, u sondern erst nach dem z .. 

Leider kann ich dir nicht selber weiterhelfen aber dir folgenden Beitrag anbieten:
http://www.java-forum.org/java-faq-beitraege/39070-jtable-teil-8-sortieren.html

Dort wird ein bisschen mehr zu dem Rowsorter gesagt und welche Klassen da mitspielen und auch wie man seinen eigenen Sortieralgorithmus mit einbringen kann


----------



## dbausnnd (17. Jul 2014)

Times hat gesagt.:


> Java sortiert das schon korrekt..^^
> 
> Die Umlaute stehen in der ASCII-Tabelle weit hinter den Buchstaben A-Z und nicht mittendrin... wie auch im normalem Alphabet: Da kommten die Umlaute ja auch nicht nach dem a, o, u sondern erst nach dem z ..
> 
> ...



Danke für den Link. Das Java korrekt sortiert stimmt nicht ganz. Nach der DIN wird der Umlaut entweder wie der Grundbuchstabe behandelt oder umgewandelt beispielsweise Ä -> AE.

Die Sortierung über einen eigenen Comperator zu realisieren ist schon aufwendig. Ich hatte gehofft, das sowas mit einer System Property geändert werden kann.


----------



## Thallius (17. Jul 2014)

Was ist an einem eigenen Comparator denn aufwendig? Du ersetzt eben schnell die Umlaute durch ae,oe etc und vergleichst dann mit compare() und gibst das Ergebnis zurück. Das ist ein Zweizeiler

Gruß

Claus


----------



## nvidia (17. Jul 2014)

dbausnnd hat gesagt.:


> [...]Das Java korrekt sortiert stimmt nicht ganz. Nach der DIN wird der Umlaut entweder wie der Grundbuchstabe behandelt oder umgewandelt beispielsweise Ä -> AE.
> [...]




```
String[] text = {"Burhmann",
                         "Baumann",
                         "Böggemann",
                         "Bresch",
                         "Brönstrup",
                         "Bruckschen",
                         };
        
        Arrays.sort(text, Collator.getInstance(Locale.GERMAN));
```


----------



## dbausnnd (18. Jul 2014)

@nvidia
Ich muss mich korrigieren. Java sortiert in der JTable mit dem RowSorter nicht korrekt....


@Thallius
Ich gucke mir das mal an.....


----------

