r2d290 Skrevet 20. juli 2016 Skrevet 20. juli 2016 Hallo Jobber med sortering av norske navn hentet fra en Oracle-database til Java, og sliter med at Å blir sortert foran Æ. Dette tror jeg kommer av at ascii-verdien for Å = 197, Æ =198 og Ø = 216 Hvordan er den mest vanlige måten å løse dette?
stelar7 Skrevet 20. juli 2016 Skrevet 20. juli 2016 (endret) Du kan sortere basert på en Collator. Er litt usikker på om "nob" er rett, men mener det skal fungere fint. Collections.sort(listOfNames, Collator.getInstance(new Locale("nob"))); EDIT: rett locale er new Locale("no", "nb") Eksempel: public static void main(String[] args) { List<String> listOfNames = Arrays.asList("a", "e", "ø", "æ", "k", "å", "a"); System.out.println(listOfNames); Collections.sort(listOfNames, Collator.getInstance(new Locale("no", "nb"))); System.out.println(listOfNames); } [a, e, ø, æ, k, å, a] [a, a, e, k, æ, ø, å] Endret 21. juli 2016 av stelar7
quantum Skrevet 21. juli 2016 Skrevet 21. juli 2016 Ellers er jo dette noe databasen er flink til... select blablabla order by name;
r2d290 Skrevet 22. juli 2016 Forfatter Skrevet 22. juli 2016 Joda, er bare at databasen sorterer det feil. Den hentet ut alt sortert, bare med å foran æ og ø.
quantum Skrevet 24. juli 2016 Skrevet 24. juli 2016 Joda, er bare at databasen sorterer det feil. Den hentet ut alt sortert, bare med å foran æ og ø. det gjør jo javaprogrammet ditt også? sett opp databasen korrekt, løsningen er ikke å sortere i java. sikkert noen som vet hvordan i sql-gruppa, hvis du ikke finner løsningen selv.
Sokkalf™ Skrevet 24. juli 2016 Skrevet 24. juli 2016 Oracle støtter fint å sortere på norsk dersom den er satt opp for det, som quantum sier. Sjekk ut NLS_LANG.
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå