数值型包括
- byte、short、int、long、float、double及对应的包装类型
- BigInteger、BigDecimal
commons-lang3的NumberUtils
常用常量
//给数值型的包装类型 Byte、Short、Integer、Long、Float、Double 都提供了 0、1、-1 三个值的常量
Long longZero = NumberUtils.LONG_ZERO;
Long longOne = NumberUtils.LONG_ONE;
Long longMinusOne = NumberUtils.LONG_MINUS_ONE;
//Integer类型还提供常用的常量2
Integer integerTwo = NumberUtils.INTEGER_TWO;
常用方法
//计算各类数值型的最值,参数数值类型相同、个数不定
int min = NumberUtils.min(1, 2, 3);
int max = NumberUtils.max(1, 2, 3);
//检查字符串中的字符是否都为unicode数字,digit 数字
boolean isDigits = NumberUtils.isDigits(str);
//检查str能否被转换为unicode数字
boolean isParsable = NumberUtils.isParsable(str);
//注意此处是unicode数字:除了阿拉伯数字0~9,१२३之类的梵文数字、全角数字也属于unicode数字。null、空串返回false
//从String创建各类数值型的包装类型、BigInteger、BigDecimal,null返回null,转换失败会抛出异常
Integer integer = NumberUtils.createInteger(str);
BigInteger bigInteger = NumberUtils.createBigInteger(str);
BigDecimal bigDecimal = NumberUtils.createBigDecimal(str);
//将String转换为各类数值型的基本类型,null、转换失败时返回默认值
int i1 = NumberUtils.toInt(str, defaultValue);
//缺省默认值时,整型默认取0,浮点型默认取0.0
int i2 = NumberUtils.toInt(str);
spring的NumberUtils
//数值型的class对象集合
Set<Class<?>> standardNumberTypes = NumberUtils.STANDARD_NUMBER_TYPES;
//将String转换为指定的数值包装类型,转换失败会抛出异常
Integer integer1 = NumberUtils.parseNumber(str, Integer.class);