Package org.springframework.util
Class NumberUtils
- java.lang.Object
- org.springframework.util.NumberUtils
public abstract class NumberUtils extends Object
Miscellaneous utility methods for number conversion and parsing.Mainly for internal use within the framework; consider Apache's Commons Lang for a more comprehensive suite of number utilities.
- Since:
- 1.1.2
- Author:
- Juergen Hoeller, Rob Harrop
Field Summary
Fields Modifier and Type Field Description static Set<Class<?>>
STANDARD_NUMBER_TYPES
Standard number types (all immutable): Byte, Short, Integer, Long, BigInteger, Float, Double, BigDecimal.
Constructor Summary
Constructors Constructor Description NumberUtils()
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <T extends Number>
TconvertNumberToTargetClass(Number number, Class<T> targetClass)
Convert the given number into an instance of the given target class.static <T extends Number>
TparseNumber(String text, Class<T> targetClass)
Parse the giventext
into aNumber
instance of the given target class, using the correspondingdecode
/valueOf
method.static <T extends Number>
TparseNumber(String text, Class<T> targetClass, NumberFormat numberFormat)
Parse the giventext
into aNumber
instance of the given target class, using the suppliedNumberFormat
.
Field Detail
STANDARD_NUMBER_TYPES
public static final Set<Class<?>> STANDARD_NUMBER_TYPES
Standard number types (all immutable): Byte, Short, Integer, Long, BigInteger, Float, Double, BigDecimal.
Constructor Detail
NumberUtils
public NumberUtils()
Method Detail
convertNumberToTargetClass
public static <T extends Number> T convertNumberToTargetClass(Number number, Class<T> targetClass) throws IllegalArgumentException
Convert the given number into an instance of the given target class.- Parameters:
number
- the number to converttargetClass
- the target class to convert to- Returns:
- the converted number
- Throws:
IllegalArgumentException
- if the target class is not supported (i.e. not a standard Number subclass as included in the JDK)- See Also:
Byte
,Short
,Integer
,Long
,BigInteger
,Float
,Double
,BigDecimal
parseNumber
public static <T extends Number> T parseNumber(String text, Class<T> targetClass)
Parse the giventext
into aNumber
instance of the given target class, using the correspondingdecode
/valueOf
method.Trims the input
String
before attempting to parse the number.Supports numbers in hex format (with leading "0x", "0X", or "#") as well.
- Parameters:
text
- the text to converttargetClass
- the target class to parse into- Returns:
- the parsed number
- Throws:
IllegalArgumentException
- if the target class is not supported (i.e. not a standard Number subclass as included in the JDK)- See Also:
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(String)
parseNumber
public static <T extends Number> T parseNumber(String text, Class<T> targetClass, NumberFormat numberFormat)
Parse the giventext
into aNumber
instance of the given target class, using the suppliedNumberFormat
.Trims the input
String
before attempting to parse the number.- Parameters:
text
- the text to converttargetClass
- the target class to parse intonumberFormat
- theNumberFormat
to use for parsing (ifnull
, this method falls back toparseNumber(String, Class)
)- Returns:
- the parsed number
- Throws:
IllegalArgumentException
- if the target class is not supported (i.e. not a standard Number subclass as included in the JDK)- See Also:
NumberFormat.parse(java.lang.String, java.text.ParsePosition)
,convertNumberToTargetClass(java.lang.Number, java.lang.Class<T>)
,parseNumber(String, Class)