Class Numbers

java.lang.Object
org.codehaus.groovy.syntax.Numbers

public class Numbers extends Object
Utility class for processing and parsing Groovy numeric literals. Provides methods for character classification (digits, hex digits, etc.) and conversion of numeric literal strings to appropriate Number objects, handling various bases (decimal, octal, hexadecimal, binary) and type suffixes.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static boolean
    isDigit(char c)
    Returns true if the specified character is a decimal digit (0-9).
    static boolean
    isHexDigit(char c)
    Returns true if the specified character is a hexadecimal digit (0-9, A-F, a-f).
    static boolean
    isNumericTypeSpecifier(char c, boolean isDecimal)
    Returns true if the specified character is a valid type suffix for a numeric literal.
    static boolean
    isOctalDigit(char c)
    Returns true if the specified character is an octal digit (0-7).
    static Number
    Builds a Number from the given decimal descriptor.
    static Number
    Builds a Number from the given integer descriptor.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • Numbers

      public Numbers()
  • Method Details

    • isDigit

      public static boolean isDigit(char c)
      Returns true if the specified character is a decimal digit (0-9).
      Parameters:
      c - the character to check
      Returns:
      true if the character is a decimal digit
    • isOctalDigit

      public static boolean isOctalDigit(char c)
      Returns true if the specified character is an octal digit (0-7).
      Parameters:
      c - the character to check
      Returns:
      true if the character is an octal digit
    • isHexDigit

      public static boolean isHexDigit(char c)
      Returns true if the specified character is a hexadecimal digit (0-9, A-F, a-f).
      Parameters:
      c - the character to check
      Returns:
      true if the character is a hexadecimal digit
    • isNumericTypeSpecifier

      public static boolean isNumericTypeSpecifier(char c, boolean isDecimal)
      Returns true if the specified character is a valid type suffix for a numeric literal. For decimal literals: G/g (BigDecimal), D/d (double), F/f (float). For integer literals: G/g (BigInteger), I/i (int), L/l (long).
      Parameters:
      c - the character to check
      isDecimal - true if checking a decimal literal suffix, false for integer
      Returns:
      true if the character is a valid numeric type specifier
    • parseInteger

      public static Number parseInteger(String text)
      Builds a Number from the given integer descriptor. Creates the narrowest type possible, or a specific type, if specified.
      Parameters:
      text - literal text to parse
      Returns:
      instantiated Number object
      Throws:
      NumberFormatException - if the number does not fit within the type requested by the type specifier suffix (invalid numbers don't make it here)
    • parseDecimal

      public static Number parseDecimal(String text)
      Builds a Number from the given decimal descriptor. Uses BigDecimal, unless, Double or Float is requested.
      Parameters:
      text - literal text to parse
      Returns:
      instantiated Number object
      Throws:
      NumberFormatException - if the number does not fit within the type requested by the type specifier suffix (invalid numbers don't make it here)