org.springframework.util
Class NumberUtils

java.lang.Object
  extended by 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 Jakarta's Commons Lang for a more comprehensive suite of string utilities.

Since:
1.1.2
Author:
Juergen Hoeller, Rob Harrop

Constructor Summary
NumberUtils()
           
 
Method Summary
static
<T extends Number>
T
convertNumberToTargetClass(Number number, Class<T> targetClass)
          Convert the given number into an instance of the given target class.
static
<T extends Number>
T
parseNumber(String text, Class<T> targetClass)
          Parse the given text into a number instance of the given target class, using the corresponding decode / valueOf methods.
static
<T extends Number>
T
parseNumber(String text, Class<T> targetClass, NumberFormat numberFormat)
          Parse the given text into a number instance of the given target class, using the given NumberFormat.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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 convert
targetClass - 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 given text into a number instance of the given target class, using the corresponding decode / valueOf methods.

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 convert
targetClass - 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.BigDecimal(String)

parseNumber

public static <T extends Number> T parseNumber(String text,
                                               Class<T> targetClass,
                                               NumberFormat numberFormat)
Parse the given text into a number instance of the given target class, using the given NumberFormat. Trims the input String before attempting to parse the number.

Parameters:
text - the text to convert
targetClass - the target class to parse into
numberFormat - the NumberFormat to use for parsing (if null, this method falls back to parseNumber(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), parseNumber(String, Class)