Class NumberInput


  • public final class NumberInput
    extends java.lang.Object
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.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).
    • Constructor Summary

      Constructors 
      Constructor Description
      NumberInput()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static boolean inLongRange​(char[] ch, int off, 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.
      static boolean inLongRange​(java.lang.String s, boolean negative)
      Similar to inLongRange(char[],int,int,boolean), but with String argument
      static double parseAsDouble​(java.lang.String s, double def)  
      static int parseAsInt​(java.lang.String s, int def)  
      static long parseAsLong​(java.lang.String s, long def)  
      static java.math.BigDecimal parseBigDecimal​(char[] b)  
      static java.math.BigDecimal parseBigDecimal​(char[] b, int off, int len)  
      static java.math.BigDecimal parseBigDecimal​(java.lang.String s)  
      static double parseDouble​(java.lang.String s)  
      static int parseInt​(char[] ch, int off, int len)
      Fast method for parsing integers that are known to fit into regular 32-bit signed int type.
      static int parseInt​(java.lang.String s)
      Helper method to (more) efficiently parse integer numbers from String values.
      static long parseLong​(char[] ch, int off, int len)  
      static long parseLong​(java.lang.String s)  
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • NASTY_SMALL_DOUBLE

        public static final java.lang.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 int parseInt​(char[] ch,
                                   int off,
                                   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 int parseInt​(java.lang.String s)
        Helper method to (more) efficiently parse integer numbers from String values.
      • parseLong

        public static long parseLong​(char[] ch,
                                     int off,
                                     int len)
      • parseLong

        public static long parseLong​(java.lang.String s)
      • inLongRange

        public static boolean inLongRange​(char[] ch,
                                          int off,
                                          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 boolean inLongRange​(java.lang.String s,
                                          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
      • parseAsInt

        public static int parseAsInt​(java.lang.String s,
                                     int def)
      • parseAsLong

        public static long parseAsLong​(java.lang.String s,
                                       long def)
      • parseAsDouble

        public static double parseAsDouble​(java.lang.String s,
                                           double def)
      • parseDouble

        public static double parseDouble​(java.lang.String s)
                                  throws java.lang.NumberFormatException
        Throws:
        java.lang.NumberFormatException
      • parseBigDecimal

        public static java.math.BigDecimal parseBigDecimal​(java.lang.String s)
                                                    throws java.lang.NumberFormatException
        Throws:
        java.lang.NumberFormatException
      • parseBigDecimal

        public static java.math.BigDecimal parseBigDecimal​(char[] b)
                                                    throws java.lang.NumberFormatException
        Throws:
        java.lang.NumberFormatException
      • parseBigDecimal

        public static java.math.BigDecimal parseBigDecimal​(char[] b,
                                                           int off,
                                                           int len)
                                                    throws java.lang.NumberFormatException
        Throws:
        java.lang.NumberFormatException