添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
精明的日记本  ·  Nu1100: unable to ...·  1 周前    · 
踏实的茄子  ·  Get Docker | Docker Docs·  3 月前    · 
至今单身的茄子  ·  DefaultModelBindingMes ...·  4 月前    · 
public class NumberUtils
extends Object
Provides extra functionality for Java Number classes.
Since:
static BigDecimal toScaledBigDecimal ( BigDecimal value)
Convert a BigDecimal to a BigDecimal with a scale of two that has been rounded using RoundingMode.HALF_EVEN .
static BigDecimal toScaledBigDecimal ( BigDecimal value, int scale, RoundingMode roundingMode)
Convert a BigDecimal to a BigDecimal whose scale is the specified value with a RoundingMode applied.
static BigDecimal toScaledBigDecimal ( Double value)
Convert a Double to a BigDecimal with a scale of two that has been rounded using RoundingMode.HALF_EVEN .
static BigDecimal toScaledBigDecimal ( Double value, int scale, RoundingMode roundingMode)
Convert a Double to a BigDecimal whose scale is the specified value with a RoundingMode applied.
static BigDecimal toScaledBigDecimal ( Float value)
Convert a Float to a BigDecimal with a scale of two that has been rounded using RoundingMode.HALF_EVEN .
static BigDecimal toScaledBigDecimal ( Float value, int scale, RoundingMode roundingMode)
Convert a Float to a BigDecimal whose scale is the specified value with a RoundingMode applied.
static BigDecimal toScaledBigDecimal ( String value)
Convert a String to a BigDecimal with a scale of two that has been rounded using RoundingMode.HALF_EVEN .
static BigDecimal toScaledBigDecimal ( String value, int scale, RoundingMode roundingMode)
Convert a String to a BigDecimal whose scale is the specified value with a RoundingMode applied.
static short toShort ( String str)
Convert a String to a short , returning zero if the conversion fails.
static short toShort ( String str, short defaultValue)
Convert a String to an short , returning a default value if the conversion fails.

LONG_INT_MAX_VALUE

public static final Long LONG_INT_MAX_VALUE
Since:
3.12.0

LONG_INT_MIN_VALUE

public static final Long LONG_INT_MIN_VALUE
Since:
3.12.0

NumberUtils

public NumberUtils()
NumberUtils instances should NOT be constructed in standard programming. Instead, the class should be used as NumberUtils.toInt("6"); .

This constructor is public to permit tools that require a JavaBean instance to operate.

public static int compare(byte x,
                          byte y)
Compares two byte values numerically. This is the same functionality as provided in Java 7.
Parameters:
x - the first byte to compare
y - the second byte to compare
Returns:
the value 0 if x == y ; a value less than 0 if x < y ; and a value greater than 0 if x > y
Since:
public static int compare(int x,
                          int y)
Compares two int values numerically. This is the same functionality as provided in Java 7.
Parameters:
x - the first int to compare
y - the second int to compare
Returns:
the value 0 if x == y ; a value less than 0 if x < y ; and a value greater than 0 if x > y
Since:
public static int compare(long x,
                          long y)
Compares to long values numerically. This is the same functionality as provided in Java 7.
Parameters:
x - the first long to compare
y - the second long to compare
Returns:
the value 0 if x == y ; a value less than 0 if x < y ; and a value greater than 0 if x > y
Since:
public static int compare(short x,
                          short y)
Compares to short values numerically. This is the same functionality as provided in Java 7.
Parameters:
x - the first short to compare
y - the second short to compare
Returns:
the value 0 if x == y ; a value less than 0 if x < y ; and a value greater than 0 if x > y
Since:

createBigDecimal

public static BigDecimal createBigDecimal(String str)
Convert a String to a BigDecimal .

Returns null if the string is null .

Parameters:
str - a String to convert, may be null
Returns:
converted BigDecimal (or null if the input is null)
Throws:
NumberFormatException - if the value cannot be converted

createBigInteger

public static BigInteger createBigInteger(String str)
Convert a String to a BigInteger ; since 3.2 it handles hexadecimal (0x or #) and octal (0) notations.

Returns null if the string is null .

Parameters:
str - a String to convert, may be null
Returns:
converted BigInteger (or null if the input is null)
Throws:
NumberFormatException - if the value cannot be converted

createDouble

public static Double createDouble(String str)
Convert a String to a Double .

Returns null if the string is null .

Parameters:
str - a String to convert, may be null
Returns:
converted Double (or null if the input is null)
Throws:
NumberFormatException - if the value cannot be converted

createFloat

public static Float createFloat(String str)
Convert a String to a Float .

Returns null if the string is null .

Parameters:
str - a String to convert, may be null
Returns:
converted Float (or null if the input is null)
Throws:
NumberFormatException - if the value cannot be converted

createInteger

public static Integer createInteger(String str)
Convert a String to a Integer , handling hexadecimal (0xhhhh) and octal (0dddd) notations. N.B. a leading zero means octal; spaces are not trimmed.

Returns null if the string is null .

Parameters:
str - a String to convert, may be null
Returns:
converted Integer (or null if the input is null)
Throws:
NumberFormatException - if the value cannot be converted
public static Long createLong(String str)
Convert a String to a Long ; since 3.1 it handles hexadecimal (0Xhhhh) and octal (0ddd) notations. N.B. a leading zero means octal; spaces are not trimmed.

Returns null if the string is null .

Parameters:
str - a String to convert, may be null
Returns:
converted Long (or null if the input is null)
Throws:
NumberFormatException - if the value cannot be converted

createNumber

public static Number createNumber(String str)
Turns a string value into a java.lang.Number.

If the string starts with 0x or -0x (lower or upper case) or # or -# , it will be interpreted as a hexadecimal Integer - or Long, if the number of digits after the prefix is more than 8 - or BigInteger if there are more than 16 digits.

Then, the value is examined for a type qualifier on the end, i.e. one of 'f', 'F', 'd', 'D', 'l', 'L' . If it is found, it starts trying to create successively larger types from the type specified until one is found that can represent the value.

If a type specifier is not found, it will check for a decimal point and then try successively larger types from Integer to BigInteger and from Float to BigDecimal .

Integral values with a leading 0 will be interpreted as octal; the returned number will be Integer, Long or BigDecimal as appropriate.

Returns null if the string is null .

This method does not trim the input string, i.e., strings with leading or trailing spaces will generate NumberFormatExceptions.

Parameters:
str - String containing a number, may be null
Returns:
Number created from the string (or null if the input is null)
Throws:
NumberFormatException - if the value cannot be converted

isCreatable

public static boolean isCreatable(String str)
Checks whether the String is a valid Java number.

Valid numbers include hexadecimal marked with the 0x or 0X qualifier, octal numbers, scientific notation and numbers marked with a type qualifier (e.g. 123L).

Non-hexadecimal strings beginning with a leading zero are treated as octal values. Thus the string 09 will return false , since 9 is not a valid octal value. However, numbers beginning with 0. are treated as decimal.

null and empty/blank String will return false .

Note, createNumber(String) should return a number for every input resulting in true .

Parameters:
str - the String to check
Returns:
true if the string is a correctly formatted number
Since:

isDigits

public static boolean isDigits(String str)
Checks whether the String contains only digit characters.

null and empty String will return false .

Parameters:
str - the String to check
Returns:
true if str contains only Unicode numeric
@Deprecated
public static boolean isNumber(String str)
Deprecated. This feature will be removed in Lang 4, use isCreatable(String) instead
Checks whether the String is a valid Java number.

Valid numbers include hexadecimal marked with the 0x or 0X qualifier, octal numbers, scientific notation and numbers marked with a type qualifier (e.g. 123L).

Non-hexadecimal strings beginning with a leading zero are treated as octal values. Thus the string 09 will return false , since 9 is not a valid octal value. However, numbers beginning with 0. are treated as decimal.

null and empty/blank String will return false .

Note, createNumber(String) should return a number for every input resulting in true .

Parameters:
str - the String to check
Returns:
true if the string is a correctly formatted number
Since:
3.3 the code supports hexadecimal 0Xhhh an octal 0ddd validation

isParsable

public static boolean isParsable(String str)
Checks whether the given String is a parsable number.

Parsable numbers include those Strings understood by Integer.parseInt(String) , Long.parseLong(String) , Float.parseFloat(String) or Double.parseDouble(String) . This method can be used instead of catching ParseException when calling one of those methods.

Hexadecimal and scientific notations are not considered parsable. See isCreatable(String) on those cases.

null and empty String will return false .

Parameters:
str - the String to check.
Returns:
true if the string is a parsable number.
Since:
Throws:
NullPointerException - if array is null
IllegalArgumentException - if array is empty
Since:
3.4 Changed signature from max(byte[]) to max(byte...)
Throws:
NullPointerException - if array is null
IllegalArgumentException - if array is empty
Since:
3.4 Changed signature from max(double[]) to max(double...)
See Also:
IEEE754rUtils for a version of this method that handles NaN differently
Throws:
NullPointerException - if array is null
IllegalArgumentException - if array is empty
Since:
3.4 Changed signature from max(float[]) to max(float...)
See Also:
IEEE754rUtils for a version of this method that handles NaN differently
Throws:
NullPointerException - if array is null
IllegalArgumentException - if array is empty
Since:
3.4 Changed signature from max(int[]) to max(int...)
Throws:
NullPointerException - if array is null
IllegalArgumentException - if array is empty
Since:
3.4 Changed signature from max(long[]) to max(long...)
Throws:
NullPointerException - if array is null
IllegalArgumentException - if array is empty
Since:
3.4 Changed signature from max(short[]) to max(short...)
Throws:
NullPointerException - if array is null
IllegalArgumentException - if array is empty
Since:
3.4 Changed signature from min(byte[]) to min(byte...)
Throws:
NullPointerException - if array is null
IllegalArgumentException - if array is empty
Since:
3.4 Changed signature from min(double[]) to min(double...)
See Also:
IEEE754rUtils for a version of this method that handles NaN differently
Throws:
NullPointerException - if array is null
IllegalArgumentException - if array is empty
Since:
3.4 Changed signature from min(float[]) to min(float...)
See Also:
IEEE754rUtils for a version of this method that handles NaN differently
Throws:
NullPointerException - if array is null
IllegalArgumentException - if array is empty
Since:
3.4 Changed signature from min(int[]) to min(int...)
Throws:
NullPointerException - if array is null
IllegalArgumentException - if array is empty
Since:
3.4 Changed signature from min(long[]) to min(long...)
Throws:
NullPointerException - if array is null
IllegalArgumentException - if array is empty
Since:
3.4 Changed signature from min(short[]) to min(short...)
public static byte toByte(String str)
Convert a String to a byte , returning zero if the conversion fails.

If the string is null , zero is returned.

NumberUtils.toByte(null) = 0 NumberUtils.toByte("") = 0 NumberUtils.toByte("1") = 1
Parameters:
str - the string to convert, may be null
Returns:
the byte represented by the string, or zero if conversion fails
Since:
public static byte toByte(String str,
                          byte defaultValue)
Convert a String to a byte , returning a default value if the conversion fails.

If the string is null , the default value is returned.

NumberUtils.toByte(null, 1) = 1 NumberUtils.toByte("", 1) = 1 NumberUtils.toByte("1", 0) = 1
Parameters:
str - the string to convert, may be null
defaultValue - the default value
Returns:
the byte represented by the string, or the default if conversion fails
Since:

toDouble

public static double toDouble(BigDecimal value)
Convert a BigDecimal to a double .

If the BigDecimal value is null , then the specified default value is returned.

NumberUtils.toDouble(null) = 0.0d NumberUtils.toDouble(BigDecimal.valueOf(8.5d)) = 8.5d
Parameters:
value - the BigDecimal to convert, may be null .
Returns:
the double represented by the BigDecimal or 0.0d if the BigDecimal is null .
Since:
public static double toDouble(BigDecimal value,
                              double defaultValue)
Convert a BigDecimal to a double .

If the BigDecimal value is null , then the specified default value is returned.

NumberUtils.toDouble(null, 1.1d) = 1.1d NumberUtils.toDouble(BigDecimal.valueOf(8.5d), 1.1d) = 8.5d
Parameters:
value - the BigDecimal to convert, may be null .
defaultValue - the default value
Returns:
the double represented by the BigDecimal or the defaultValue if the BigDecimal is null .
Since:

toDouble

public static double toDouble(String str)
Convert a String to a double , returning 0.0d if the conversion fails.

If the string str is null , 0.0d is returned.

NumberUtils.toDouble(null) = 0.0d NumberUtils.toDouble("") = 0.0d NumberUtils.toDouble("1.5") = 1.5d
Parameters:
str - the string to convert, may be null
Returns:
the double represented by the string, or 0.0d if conversion fails
Since:
public static double toDouble(String str,
                              double defaultValue)
Convert a String to a double , returning a default value if the conversion fails.

If the string str is null , the default value is returned.

NumberUtils.toDouble(null, 1.1d) = 1.1d NumberUtils.toDouble("", 1.1d) = 1.1d NumberUtils.toDouble("1.5", 0.0d) = 1.5d
Parameters:
str - the string to convert, may be null
defaultValue - the default value
Returns:
the double represented by the string, or defaultValue if conversion fails
Since:

toFloat

public static float toFloat(String str)
Convert a String to a float , returning 0.0f if the conversion fails.

If the string str is null , 0.0f is returned.

NumberUtils.toFloat(null) = 0.0f NumberUtils.toFloat("") = 0.0f NumberUtils.toFloat("1.5") = 1.5f
Parameters:
str - the string to convert, may be null
Returns:
the float represented by the string, or 0.0f if conversion fails
Since:
public static float toFloat(String str,
                            float defaultValue)
Convert a String to a float , returning a default value if the conversion fails.

If the string str is null , the default value is returned.

NumberUtils.toFloat(null, 1.1f) = 1.0f NumberUtils.toFloat("", 1.1f) = 1.1f NumberUtils.toFloat("1.5", 0.0f) = 1.5f
Parameters:
str - the string to convert, may be null
defaultValue - the default value
Returns:
the float represented by the string, or defaultValue if conversion fails
Since:
public static int toInt(String str)
Convert a String to an int , returning zero if the conversion fails.

If the string is null , zero is returned.

NumberUtils.toInt(null) = 0 NumberUtils.toInt("") = 0 NumberUtils.toInt("1") = 1
Parameters:
str - the string to convert, may be null
Returns:
the int represented by the string, or zero if conversion fails
Since:
public static int toInt(String str,
                        int defaultValue)
Convert a String to an int , returning a default value if the conversion fails.

If the string is null , the default value is returned.

NumberUtils.toInt(null, 1) = 1 NumberUtils.toInt("", 1) = 1 NumberUtils.toInt("1", 0) = 1
Parameters:
str - the string to convert, may be null
defaultValue - the default value
Returns:
the int represented by the string, or the default if conversion fails
Since:
public static long toLong(String str)
Convert a String to a long , returning zero if the conversion fails.

If the string is null , zero is returned.

NumberUtils.toLong(null) = 0L NumberUtils.toLong("") = 0L NumberUtils.toLong("1") = 1L
Parameters:
str - the string to convert, may be null
Returns:
the long represented by the string, or 0 if conversion fails
Since:
public static long toLong(String str,
                          long defaultValue)
Convert a String to a long , returning a default value if the conversion fails.

If the string is null , the default value is returned.

NumberUtils.toLong(null, 1L) = 1L NumberUtils.toLong("", 1L) = 1L NumberUtils.toLong("1", 0L) = 1L
Parameters:
str - the string to convert, may be null
defaultValue - the default value
Returns:
the long represented by the string, or the default if conversion fails
Since:

toScaledBigDecimal

public static BigDecimal toScaledBigDecimal(BigDecimal value)
Convert a BigDecimal to a BigDecimal with a scale of two that has been rounded using RoundingMode.HALF_EVEN . If the supplied value is null, then BigDecimal.ZERO is returned.

Note, the scale of a BigDecimal is the number of digits to the right of the decimal point.

Parameters:
value - the BigDecimal to convert, may be null.
Returns:
the scaled, with appropriate rounding, BigDecimal .
Since:

toScaledBigDecimal

public static BigDecimal toScaledBigDecimal(BigDecimal value,
                                            int scale,
                                            RoundingMode roundingMode)
Convert a BigDecimal to a BigDecimal whose scale is the specified value with a RoundingMode applied. If the input value is null , we simply return BigDecimal.ZERO .
Parameters:
value - the BigDecimal to convert, may be null.
scale - the number of digits to the right of the decimal point.
roundingMode - a rounding behavior for numerical operations capable of discarding precision.
Returns:
the scaled, with appropriate rounding, BigDecimal .
Since:

toScaledBigDecimal

public static BigDecimal toScaledBigDecimal(Double value)
Convert a Double to a BigDecimal with a scale of two that has been rounded using RoundingMode.HALF_EVEN . If the supplied value is null, then BigDecimal.ZERO is returned.

Note, the scale of a BigDecimal is the number of digits to the right of the decimal point.

Parameters:
value - the Double to convert, may be null.
Returns:
the scaled, with appropriate rounding, BigDecimal .
Since:

toScaledBigDecimal

public static BigDecimal toScaledBigDecimal(Double value,
                                            int scale,
                                            RoundingMode roundingMode)
Convert a Double to a BigDecimal whose scale is the specified value with a RoundingMode applied. If the input value is null , we simply return BigDecimal.ZERO .
Parameters:
value - the Double to convert, may be null.
scale - the number of digits to the right of the decimal point.
roundingMode - a rounding behavior for numerical operations capable of discarding precision.
Returns:
the scaled, with appropriate rounding, BigDecimal .
Since:

toScaledBigDecimal

public static BigDecimal toScaledBigDecimal(Float value)
Convert a Float to a BigDecimal with a scale of two that has been rounded using RoundingMode.HALF_EVEN . If the supplied value is null, then BigDecimal.ZERO is returned.

Note, the scale of a BigDecimal is the number of digits to the right of the decimal point.

Parameters:
value - the Float to convert, may be null.
Returns:
the scaled, with appropriate rounding, BigDecimal .
Since:

toScaledBigDecimal

public static BigDecimal toScaledBigDecimal(Float value,
                                            int scale,
                                            RoundingMode roundingMode)
Convert a Float to a BigDecimal whose scale is the specified value with a RoundingMode applied. If the input value is null , we simply return BigDecimal.ZERO .
Parameters:
value - the Float to convert, may be null.
scale - the number of digits to the right of the decimal point.
roundingMode - a rounding behavior for numerical operations capable of discarding precision.
Returns:
the scaled, with appropriate rounding, BigDecimal .
Since:

toScaledBigDecimal

public static BigDecimal toScaledBigDecimal(String value)
Convert a String to a BigDecimal with a scale of two that has been rounded using RoundingMode.HALF_EVEN . If the supplied value is null, then BigDecimal.ZERO is returned.

Note, the scale of a BigDecimal is the number of digits to the right of the decimal point.

Parameters:
value - the String to convert, may be null.
Returns:
the scaled, with appropriate rounding, BigDecimal .
Since:

toScaledBigDecimal

public static BigDecimal toScaledBigDecimal(String value,
                                            int scale,
                                            RoundingMode roundingMode)
Convert a String to a BigDecimal whose scale is the specified value with a RoundingMode applied. If the input value is null , we simply return BigDecimal.ZERO .
Parameters:
value - the String to convert, may be null.
scale - the number of digits to the right of the decimal point.
roundingMode - a rounding behavior for numerical operations capable of discarding precision.
Returns:
the scaled, with appropriate rounding, BigDecimal .
Since:

toShort

public static short toShort(String str)
Convert a String to a short , returning zero if the conversion fails.

If the string is null , zero is returned.

NumberUtils.toShort(null) = 0 NumberUtils.toShort("") = 0 NumberUtils.toShort("1") = 1
Parameters:
str - the string to convert, may be null
Returns:
the short represented by the string, or zero if conversion fails
Since:
public static short toShort(String str,
                            short defaultValue)
Convert a String to an short , returning a default value if the conversion fails.

If the string is null , the default value is returned.

NumberUtils.toShort(null, 1) = 1 NumberUtils.toShort("", 1) = 1 NumberUtils.toShort("1", 0) = 1
Parameters:
str - the string to convert, may be null
defaultValue - the default value
Returns:
the short represented by the string, or the default if conversion fails
Since: