Portál AbcLinuxu, 13. května 2025 23:17
Zdravim, mam jeden mensi dotaz, protoze me to prave zaskocilo:
public static void main(String[] args) { ArrayList String myList = new ArrayList String (); myList.add("abc"); myList.add("linux"); myList.add("java"); myList.add("ABC"); myList.add("Linux"); myList.add("Java"); Collections.sort(myList); for (String element : myList) System.out.println(element); }
Vypise
ABC Java Linux abc java linux
Co musim udelat, aby byl vypis (podle me) logicky takto:
abc ABC java linux Linux
java.utils.Collections.sort()
so spravnym komparatorom; defaultny da asi ine poradie ako chces.
http://www.google.com/search?q=collections%20sort%20locale
S locate to podle me nema nic spolecneho nebo se pletu?
To teda má, zkuste s různými locale a třeba některé bude logické :):):)
Collator collator = Collator.getInstance (Locale.US); //nebo jiné Locale třeba české Collections.sort(myList,collattor);
Jeste bych k tomu pripojil tento dotaz: Proc je razeni retezcu implicitne nastaveno takto? Nezda se vam to divne?
Nezdá :)
Třeba proto
... a třeba taky zmiňované LOCALE
Logicky je jako jak ?, dle čeho ? :)
dovoluji upozornit, že požadované není ani zaručeně české řazení
abc ABC java linux Linux nebo ABC abc java Linux linux
Je obojí správně abecedně seřazen česky a to nemluvě až narazíte na to že znaky č,ř,š,ž jsou považovány za základní.
Nevím jestli následující je to logicky, ale je to česky :)
cepem čepem cepín
WOW :)
Šoupák! :) je tam
Collections.sort(myList);
man ascii
. Je to akasi "Non-OOP Inheritance". java.text.Collator
.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.