Class ByStringAsNumberComparator

  • All Implemented Interfaces:
    java.util.Comparator<java.lang.String>

    public class ByStringAsNumberComparator
    extends java.lang.Object
    implements java.util.Comparator<java.lang.String>
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int compare​(java.lang.String o1, java.lang.String o2)  
      (package private) java.math.BigDecimal extractFirstNumber​(java.lang.String s)
      Extracts the first decimal number in the given string or returns null.
      (package private) boolean isDecimalPoint​(char c)  
      (package private) boolean isDigit​(char c)  
      (package private) boolean isNumberSeparator​(char c)  
      private static java.util.Set<java.lang.Character> knownNumberSpaces()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.util.Comparator

        equals, reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
    • Field Detail

      • SPACE_CHARS_ALLOWED_IN_NUMBERS

        private static final java.util.Set<java.lang.Character> SPACE_CHARS_ALLOWED_IN_NUMBERS
    • Constructor Detail

      • ByStringAsNumberComparator

        public ByStringAsNumberComparator()
    • Method Detail

      • compare

        public int compare​(java.lang.String o1,
                           java.lang.String o2)
        Specified by:
        compare in interface java.util.Comparator<java.lang.String>
      • extractFirstNumber

        java.math.BigDecimal extractFirstNumber​(java.lang.String s)
        Extracts the first decimal number in the given string or returns null.

        This counts '.1' as number `1/10`. This will also supports negative numbers.

        Parameters:
        s -
        Returns:
      • isDigit

        boolean isDigit​(char c)
      • isDecimalPoint

        boolean isDecimalPoint​(char c)
      • isNumberSeparator

        boolean isNumberSeparator​(char c)
      • knownNumberSpaces

        private static java.util.Set<java.lang.Character> knownNumberSpaces()