public abstract class NumberUtils
extends java.lang.Object
Mainly for internal use within the framework; consider Apache's Commons Lang for a more comprehensive suite of number utilities.
Modifier and Type | Field and Description |
---|---|
static java.util.Set<java.lang.Class<?>> |
STANDARD_NUMBER_TYPES
Standard number types (all immutable):
Byte, Short, Integer, Long, BigInteger, Float, Double, BigDecimal.
|
Constructor and Description |
---|
NumberUtils() |
Modifier and Type | Method and Description |
---|---|
static <T extends java.lang.Number> |
convertNumberToTargetClass(java.lang.Number number,
java.lang.Class<T> targetClass)
Convert the given number into an instance of the given target class.
|
static <T extends java.lang.Number> |
parseNumber(java.lang.String text,
java.lang.Class<T> targetClass)
Parse the given
text into a Number instance of the given
target class, using the corresponding decode / valueOf method. |
static <T extends java.lang.Number> |
parseNumber(java.lang.String text,
java.lang.Class<T> targetClass,
java.text.NumberFormat numberFormat)
Parse the given
text into a Number instance of the
given target class, using the supplied NumberFormat . |
public static final java.util.Set<java.lang.Class<?>> STANDARD_NUMBER_TYPES
public static <T extends java.lang.Number> T convertNumberToTargetClass(java.lang.Number number, java.lang.Class<T> targetClass) throws java.lang.IllegalArgumentException
number
- the number to converttargetClass
- the target class to convert tojava.lang.IllegalArgumentException
- if the target class is not supported
(i.e. not a standard Number subclass as included in the JDK)Byte
,
Short
,
Integer
,
Long
,
BigInteger
,
Float
,
Double
,
BigDecimal
public static <T extends java.lang.Number> T parseNumber(java.lang.String text, java.lang.Class<T> targetClass)
text
into a Number
instance of the given
target class, using the corresponding decode
/ valueOf
method.
Trims all whitespace (leading, trailing, and in between characters) from
the input String
before attempting to parse the number.
Supports numbers in hex format (with leading "0x", "0X", or "#") as well.
text
- the text to converttargetClass
- the target class to parse intojava.lang.IllegalArgumentException
- if the target class is not supported
(i.e. not a standard Number subclass as included in the JDK)Byte.decode(java.lang.String)
,
Short.decode(java.lang.String)
,
Integer.decode(java.lang.String)
,
Long.decode(java.lang.String)
,
decodeBigInteger(String)
,
Float.valueOf(java.lang.String)
,
Double.valueOf(java.lang.String)
,
BigDecimal.BigDecimal(String)
public static <T extends java.lang.Number> T parseNumber(java.lang.String text, java.lang.Class<T> targetClass, @Nullable java.text.NumberFormat numberFormat)
text
into a Number
instance of the
given target class, using the supplied NumberFormat
.
Trims the input String
before attempting to parse the number.
text
- the text to converttargetClass
- the target class to parse intonumberFormat
- the NumberFormat
to use for parsing (if
null
, this method falls back to parseNumber(String, Class)
)java.lang.IllegalArgumentException
- if the target class is not supported
(i.e. not a standard Number subclass as included in the JDK)NumberFormat.parse(java.lang.String, java.text.ParsePosition)
,
convertNumberToTargetClass(java.lang.Number, java.lang.Class<T>)
,
parseNumber(String, Class)