Gyakori feladat, hogy számokat tartalmazó szövegeket kell rendeznünk természetes módon, amely azt eredményezi, hogy a szövegként tárolt számok rendezése nem lesz megfelelő: az ["1","3","21"] számok szövegként való rendezése után ["1","21","3"] sorrendbe kerülnek.
A szűkebb Java nem ad erre eszközt és sajnos tágabb körben is probléma marad ez a probléma: nincs erre megoldás még a népszerű Jakarta Commons gyűjteményben sem. Ezt a problémát járta körül az In My Opinion blog írója is, s az alábbi megoldásokat találta:
Az oldalon készítettek egy tesztkörnyezetet, amelyben kipróbálták a felsorolt implementációkat, s az alábbi eredményeket kapták:
Pierre-Luc Paour NaturalOrderComparator 453ms Eléggé gyors
Stephen Friedrich NaturalComparator 4828ms Locale szerint rendez, de lassú
Stephen Friedrich NaturalComparatorAscii 360ms A leggyorsabb, de csak ASCII
Stephen Friedrich NaturalComparatorIgnoreCaseAscii 500ms Eléggé gyors, de case-insensitive, de csak ASCII
Tim Fennell HumaneStringComparator 4797ms Oktatásra kiváló
Natív Java String.compareTo() 235ms -