public class NumberUtils extends Object
| Modifier and Type | Field and Description |
|---|---|
static Byte |
BYTE_MINUS_ONE
Reusable Byte constant for minus one.
|
static Byte |
BYTE_ONE
Reusable Byte constant for one.
|
static Byte |
BYTE_ZERO
Reusable Byte constant for zero.
|
static Double |
DOUBLE_MINUS_ONE
Reusable Double constant for minus one.
|
static Double |
DOUBLE_ONE
Reusable Double constant for one.
|
static Double |
DOUBLE_ZERO
Reusable Double constant for zero.
|
static Float |
FLOAT_MINUS_ONE
Reusable Float constant for minus one.
|
static Float |
FLOAT_ONE
Reusable Float constant for one.
|
static Float |
FLOAT_ZERO
Reusable Float constant for zero.
|
static Integer |
INTEGER_MINUS_ONE
Reusable Integer constant for minus one.
|
static Integer |
INTEGER_ONE
Reusable Integer constant for one.
|
static Integer |
INTEGER_TWO
Reusable Integer constant for two
|
static Integer |
INTEGER_ZERO
Reusable Integer constant for zero.
|
static Long |
LONG_INT_MAX_VALUE
Integer.MAX_VALUE as a Long. |
static Long |
LONG_INT_MIN_VALUE
Integer.MIN_VALUE as a Long. |
static Long |
LONG_MINUS_ONE
Reusable Long constant for minus one.
|
static Long |
LONG_ONE
Reusable Long constant for one.
|
static Long |
LONG_ZERO
Reusable Long constant for zero.
|
static Short |
SHORT_MINUS_ONE
Reusable Short constant for minus one.
|
static Short |
SHORT_ONE
Reusable Short constant for one.
|
static Short |
SHORT_ZERO
Reusable Short constant for zero.
|
| Constructor and Description |
|---|
NumberUtils()
Deprecated.
TODO Make private in 4.0.
|
| Modifier and Type | Method and Description |
|---|---|
static int |
compare(byte x,
byte y)
Deprecated.
|
static int |
compare(int x,
int y)
Deprecated.
|
static int |
compare(long x,
long y)
Deprecated.
|
static int |
compare(short x,
short y)
Deprecated.
|
static BigDecimal |
createBigDecimal(String str)
Creates a
BigDecimal from a String. |
static BigInteger |
createBigInteger(String str)
Creates a
BigInteger from a String. |
static Double |
createDouble(String str)
|
static Float |
createFloat(String str)
|
static Integer |
createInteger(String str)
|
static Long |
createLong(String str)
|
static Number |
createNumber(String str)
|
static boolean |
isCreatable(String str)
Checks whether the String is a valid Java number.
|
static boolean |
isDigits(String str)
Checks whether the
String contains only digit characters. |
static boolean |
isNumber(String str)
Deprecated.
This feature will be removed in Lang 4, use
isCreatable(String) instead. |
static boolean |
isParsable(String str)
Checks whether the given String is a parsable number.
|
static byte |
max(byte... array)
Returns the maximum value in an array.
|
static byte |
max(byte a,
byte b,
byte c)
Gets the maximum of three
byte values. |
static double |
max(double... array)
Returns the maximum value in an array.
|
static double |
max(double a,
double b,
double c)
Gets the maximum of three
double values. |
static float |
max(float... array)
Returns the maximum value in an array.
|
static float |
max(float a,
float b,
float c)
Gets the maximum of three
float values. |
static int |
max(int... array)
Returns the maximum value in an array.
|
static int |
max(int a,
int b,
int c)
Gets the maximum of three
int values. |
static long |
max(long... array)
Returns the maximum value in an array.
|
static long |
max(long a,
long b,
long c)
Gets the maximum of three
long values. |
static short |
max(short... array)
Returns the maximum value in an array.
|
static short |
max(short a,
short b,
short c)
Gets the maximum of three
short values. |
static byte |
min(byte... array)
Returns the minimum value in an array.
|
static byte |
min(byte a,
byte b,
byte c)
Gets the minimum of three
byte values. |
static double |
min(double... array)
Returns the minimum value in an array.
|
static double |
min(double a,
double b,
double c)
Gets the minimum of three
double values. |
static float |
min(float... array)
Returns the minimum value in an array.
|
static float |
min(float a,
float b,
float c)
Gets the minimum of three
float values. |
static int |
min(int... array)
Returns the minimum value in an array.
|
static int |
min(int a,
int b,
int c)
Gets the minimum of three
int values. |
static long |
min(long... array)
Returns the minimum value in an array.
|
static long |
min(long a,
long b,
long c)
Gets the minimum of three
long values. |
static short |
min(short... array)
Returns the minimum value in an array.
|
static short |
min(short a,
short b,
short c)
Gets the minimum of three
short values. |
static byte |
toByte(String str)
|
static byte |
toByte(String str,
byte defaultValue)
Converts a
String to a byte, returning a default value if the conversion fails. |
static double |
toDouble(BigDecimal value)
Converts a
BigDecimal to a double. |
static double |
toDouble(BigDecimal value,
double defaultValue)
Converts a
BigDecimal to a double. |
static double |
toDouble(String str)
|
static double |
toDouble(String str,
double defaultValue)
Converts a
String to a double, returning a default value if the conversion fails. |
static float |
toFloat(String str)
|
static float |
toFloat(String str,
float defaultValue)
Converts a
String to a float, returning a default value if the conversion fails. |
static int |
toInt(String str)
|
static int |
toInt(String str,
int defaultValue)
Converts a
String to an int, returning a default value if the conversion fails. |
static long |
toLong(String str)
|
static long |
toLong(String str,
long defaultValue)
Converts a
String to a long, returning a default value if the conversion fails. |
static BigDecimal |
toScaledBigDecimal(BigDecimal value)
Converts 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)
Converts a
BigDecimal to a BigDecimal whose scale is the specified value with a RoundingMode applied. |
static BigDecimal |
toScaledBigDecimal(Double value)
Converts 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)
|
static BigDecimal |
toScaledBigDecimal(Float value)
Converts 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)
|
static BigDecimal |
toScaledBigDecimal(String value)
Converts 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)
|
static short |
toShort(String str)
|
static short |
toShort(String str,
short defaultValue)
Converts a
String to an short, returning a default value if the conversion fails. |
public static final Long LONG_ZERO
public static final Long LONG_ONE
public static final Long LONG_MINUS_ONE
public static final Integer INTEGER_ZERO
public static final Integer INTEGER_ONE
public static final Integer INTEGER_TWO
public static final Integer INTEGER_MINUS_ONE
public static final Short SHORT_ZERO
public static final Short SHORT_ONE
public static final Short SHORT_MINUS_ONE
public static final Byte BYTE_ZERO
public static final Byte BYTE_ONE
public static final Byte BYTE_MINUS_ONE
public static final Double DOUBLE_ZERO
public static final Double DOUBLE_ONE
public static final Double DOUBLE_MINUS_ONE
public static final Float FLOAT_ZERO
public static final Float FLOAT_ONE
public static final Float FLOAT_MINUS_ONE
public static final Long LONG_INT_MAX_VALUE
Integer.MAX_VALUE as a Long.public static final Long LONG_INT_MIN_VALUE
Integer.MIN_VALUE as a Long.@Deprecated 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.
@Deprecated public static int compare(byte x, byte y)
Byte.compare(byte, byte).byte values numerically. This is the same functionality as provided in Java 7.x - the first byte to compare.y - the second byte to compare.0 if x == y; a value less than 0 if x < y; and a value greater than 0 if x > y.@Deprecated public static int compare(int x, int y)
Integer.compare(int, int).int values numerically. This is the same functionality as provided in Java 7.x - the first int to compare.y - the second int to compare.0 if x == y; a value less than 0 if x < y; and a value greater than 0 if x > y.@Deprecated public static int compare(long x, long y)
Long.compare(long, long).long values numerically. This is the same functionality as provided in Java 7.x - the first long to compare.y - the second long to compare.0 if x == y; a value less than 0 if x < y; and a value greater than 0 if x > y.@Deprecated public static int compare(short x, short y)
Short.compare(short, short).short values numerically. This is the same functionality as provided in Java 7.x - the first short to compare.y - the second short to compare.0 if x == y; a value less than 0 if x < y; and a value greater than 0 if x > y.public static BigDecimal createBigDecimal(String str)
str - a String to convert, may be null.BigDecimal (or null if the input is null).NumberFormatException - if the value cannot be converted.public static BigInteger createBigInteger(String str)
BigInteger from a String.
Handles hexadecimal (0x or #) and octal (0) notations.
Returns null if the string is null.
str - a String to convert, may be null.BigInteger (or null if the input is null).NumberFormatException - if the value cannot be converted.public static Double createDouble(String str)
str - a String to convert, may be null.Double (or null if the input is null).NumberFormatException - if the value cannot be converted.public static Float createFloat(String str)
str - a String to convert, may be null.Float (or null if the input is null).NumberFormatException - if the value cannot be converted.public static Integer createInteger(String str)
Integer from a String.
Handles hexadecimal (0xhhhh) and octal (0dddd) notations. A leading zero means octal; spaces are not trimmed.
Returns null if the string is null.
str - a String to convert, may be null.Integer (or null if the input is null).NumberFormatException - if the value cannot be converted.public static Long createLong(String str)
Long from a String.
Handles hexadecimal (0Xhhhh) and octal (0ddd) notations. A leading zero means octal; spaces are not trimmed.
Returns null if the string is null.
str - a String to convert, may be null.Long (or null if the input is null).NumberFormatException - if the value cannot be converted.public static Number createNumber(String str)
Number from a String.
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.
str - String containing a number, may be null.NumberFormatException - if the value cannot be converted.public static boolean isCreatable(String str)
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.
str - the String to check.true if the string is a correctly formatted number.public static boolean isDigits(String str)
String contains only digit characters.
null and empty String will return false.
str - the String to checktrue if str contains only Unicode numeric@Deprecated public static boolean isNumber(String str)
isCreatable(String) instead.
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.
str - the String to check.true if the string is a correctly formatted number.0Xhhh an octal 0ddd validation.public static boolean isParsable(String str)
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.
str - the String to check.true if the string is a parsable number.public static byte max(byte... array)
array - an array, must not be null or empty.NullPointerException - if array is null.IllegalArgumentException - if array is empty.public static byte max(byte a,
byte b,
byte c)
byte values.a - value 1.b - value 2.c - value 3.public static double max(double... array)
array - an array, must not be null or empty.NullPointerException - if array is null.IllegalArgumentException - if array is empty.IEEE754rUtils for a version of this method that handles NaN differently.public static double max(double a,
double b,
double c)
double values.
If any value is NaN, NaN is returned. Infinity is handled.
a - value 1.b - value 2.c - value 3.for a version of this method that handles NaN differently.public static float max(float... array)
array - an array, must not be null or empty.NullPointerException - if array is null.IllegalArgumentException - if array is empty.IEEE754rUtils for a version of this method that handles NaN differently.public static float max(float a,
float b,
float c)
float values.
If any value is NaN, NaN is returned. Infinity is handled.
a - value 1.b - value 2.c - value 3.for a version of this method that handles NaN differently.public static int max(int... array)
array - an array, must not be null or empty.NullPointerException - if array is null.IllegalArgumentException - if array is empty.public static int max(int a,
int b,
int c)
int values.a - value 1.b - value 2.c - value 3.public static long max(long... array)
array - an array, must not be null or empty.NullPointerException - if array is null.IllegalArgumentException - if array is empty.public static long max(long a,
long b,
long c)
long values.a - value 1.b - value 2.c - value 3.public static short max(short... array)
array - an array, must not be null or empty.NullPointerException - if array is null.IllegalArgumentException - if array is empty.public static short max(short a,
short b,
short c)
short values.a - value 1.b - value 2.c - value 3.public static byte min(byte... array)
array - an array, must not be null or empty.NullPointerException - if array is null.IllegalArgumentException - if array is empty.public static byte min(byte a,
byte b,
byte c)
byte values.a - value 1.b - value 2.c - value 3.public static double min(double... array)
array - an array, must not be null or empty.NullPointerException - if array is null.IllegalArgumentException - if array is empty.IEEE754rUtils for a version of this method that handles NaN differently.public static double min(double a,
double b,
double c)
double values.
If any value is NaN, NaN is returned. Infinity is handled.
a - value 1.b - value 2.c - value 3.for a version of this method that handles NaN differently.public static float min(float... array)
array - an array, must not be null or empty.NullPointerException - if array is null.IllegalArgumentException - if array is empty.IEEE754rUtils for a version of this method that handles NaN differently.public static float min(float a,
float b,
float c)
float values.
If any value is NaN, NaN is returned. Infinity is handled.
a - value 1.b - value 2.c - value 3.for a version of this method that handles NaN differently.public static int min(int... array)
array - an array, must not be null or empty.NullPointerException - if array is null.IllegalArgumentException - if array is empty.public static int min(int a,
int b,
int c)
int values.a - value 1.b - value 2.c - value 3.public static long min(long... array)
array - an array, must not be null or empty.NullPointerException - if array is null.IllegalArgumentException - if array is empty.public static long min(long a,
long b,
long c)
long values.a - value 1.b - value 2.c - value 3.public static short min(short... array)
array - an array, must not be null or empty.NullPointerException - if array is null.IllegalArgumentException - if array is empty.public static short min(short a,
short b,
short c)
short values.a - value 1.b - value 2.c - value 3.public static byte toByte(String str)
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
str - the string to convert, may be null.zero if conversion fails.public static byte toByte(String str, byte defaultValue)
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
str - the string to convert, may be null.defaultValue - the default value.public static double toDouble(BigDecimal value)
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
value - the BigDecimal to convert, may be null.BigDecimal or 0.0d if the BigDecimal is null.public static double toDouble(BigDecimal value, double defaultValue)
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
value - the BigDecimal to convert, may be null.defaultValue - the default value.BigDecimal or the defaultValue if the BigDecimal is null.public static double toDouble(String str)
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
str - the string to convert, may be null.0.0d if conversion fails.public static double toDouble(String str, double defaultValue)
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
str - the string to convert, may be nulldefaultValue - the default value.public static float toFloat(String str)
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
str - the string to convert, may be null.0.0f if conversion fails.public static float toFloat(String str, float defaultValue)
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.1f
NumberUtils.toFloat("", 1.1f) = 1.1f
NumberUtils.toFloat("1.5", 0.0f) = 1.5f
str - the string to convert, may be null.defaultValue - the default value.public static int toInt(String str)
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
str - the string to convert, may be null.zero if conversion fails.public static int toInt(String str, int defaultValue)
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
str - the string to convert, may be null.defaultValue - the default value.public static long toLong(String str)
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
str - the string to convert, may be null.0 if conversion fails.public static long toLong(String str, long defaultValue)
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
str - the string to convert, may be null.defaultValue - the default value.public static BigDecimal toScaledBigDecimal(BigDecimal value)
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.
value - the BigDecimal to convert, may be null.BigDecimal.public static BigDecimal toScaledBigDecimal(BigDecimal value, int scale, RoundingMode roundingMode)
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.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.BigDecimal.public static BigDecimal toScaledBigDecimal(Double value)
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.
value - the Double to convert, may be null.BigDecimal.public static BigDecimal toScaledBigDecimal(Double value, int scale, RoundingMode roundingMode)
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.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.BigDecimal.public static BigDecimal toScaledBigDecimal(Float value)
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.
value - the Float to convert, may be null.BigDecimal.public static BigDecimal toScaledBigDecimal(Float value, int scale, RoundingMode roundingMode)
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.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.BigDecimal.public static BigDecimal toScaledBigDecimal(String value)
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.
value - the String to convert, may be null.BigDecimal.public static BigDecimal toScaledBigDecimal(String value, int scale, RoundingMode roundingMode)
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.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.BigDecimal.public static short toShort(String str)
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
str - the string to convert, may be null.zero if conversion fails.public static short toShort(String str, short defaultValue)
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
str - the string to convert, may be null.defaultValue - the default value.Copyright © 2001–2026 The Apache Software Foundation. All rights reserved.