Class NaturalOrderComparator<T>

java.lang.Object
jodd.util.NaturalOrderComparator<T>
All Implemented Interfaces:
Serializable, Comparator<T>

public class NaturalOrderComparator<T> extends Object implements Comparator<T>, Serializable
Probably the best natural strings comparator.
See Also:
  • Field Details

    • ACCENT_CHARS

      private static final char[] ACCENT_CHARS
    • ignoreCase

      protected final boolean ignoreCase
    • ignoreAccents

      protected final boolean ignoreAccents
    • skipSpaces

      protected final boolean skipSpaces
  • Constructor Details

    • NaturalOrderComparator

      public NaturalOrderComparator()
    • NaturalOrderComparator

      public NaturalOrderComparator(boolean ignoreCase, boolean ignoreAccents, boolean skipSpaces)
  • Method Details

    • compareDigits

      protected int[] compareDigits(String str1, int ndx1, String str2, int ndx2)
      Compare digits at certain position in two strings. The longest run of digits wins. That aside, the greatest value wins.
      Returns:
      if numbers are different, only 1 element is returned.
    • compare

      public int compare(T o1, T o2)
      Specified by:
      compare in interface Comparator<T>
    • fixAccent

      private char fixAccent(char c)
      Fixes accent char.
    • charAt

      private static char charAt(String string, int ndx)
      Safe charAt that returns 0 when ndx is out of boundaries.