Class NumberInput


  • public final class NumberInput
    extends Object
    • Field Detail

      • NASTY_SMALL_DOUBLE

        public static final String NASTY_SMALL_DOUBLE
        Textual representation of a double constant that can cause nasty problems with JDK (see http://www.exploringbinary.com/java-hangs-when-converting-2-2250738585072012e-308).
        See Also:
        Constant Field Values
    • Constructor Detail

      • NumberInput

        public NumberInput()
    • Method Detail

      • parseInt

        public static final int parseInt​(char[] digitChars,
                                         int offset,
                                         int len)
        Fast method for parsing integers that are known to fit into regular 32-bit signed int type. This means that length is between 1 and 9 digits (inclusive)

        Note: public to let unit tests call it

      • parseInt

        public static final int parseInt​(String str)
        Helper method to (more) efficiently parse integer numbers from String values.
        Since:
        1.7
      • parseLong

        public static final long parseLong​(char[] digitChars,
                                           int offset,
                                           int len)
      • parseLong

        public static final long parseLong​(String str)
      • inLongRange

        public static final boolean inLongRange​(char[] digitChars,
                                                int offset,
                                                int len,
                                                boolean negative)
        Helper method for determining if given String representation of an integral number would fit in 64-bit Java long or not. Note that input String must NOT contain leading minus sign (even if 'negative' is set to true).
        Parameters:
        negative - Whether original number had a minus sign (which is NOT passed to this method) or not
      • inLongRange

        public static final boolean inLongRange​(String numberStr,
                                                boolean negative)
        Similar to inLongRange(char[],int,int,boolean), but with String argument
        Parameters:
        negative - Whether original number had a minus sign (which is NOT passed to this method) or not
        Since:
        1.5.0
      • parseAsInt

        public static int parseAsInt​(String input,
                                     int defaultValue)
        Since:
        1.6
      • parseAsLong

        public static long parseAsLong​(String input,
                                       long defaultValue)
        Since:
        1.6
      • parseAsDouble

        public static double parseAsDouble​(String input,
                                           double defaultValue)
        Since:
        1.6