数值型包括
//给数值型的包装类型 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);
//数值型的class对象集合
Set<Class<?>> standardNumberTypes = NumberUtils.STANDARD_NUMBER_TYPES;
//将String转换为指定的数值包装类型,转换失败会抛出异常
Integer integer1 = NumberUtils.parseNumber(str, Integer.class);
//提供精确的加法、减法、乘法、乘方(幂)运算,返回BigDecimal
//参数支持Number、String、BigDecimal类型,参数类型相同、个数不定
BigDecimal add = NumberUtil.add(1, 2, 3, 4);
BigDecimal sub = NumberUtil.sub(1, 2, 3, 4);
BigDecimal mul = NumberUtil.mul(1, 2, 3, 4);
BigDecimal pow = NumberUtil.pow(2, 10);
//相除,保留指定位数的小数(后面部分四舍五入),支持Number、String、BigDecimal类型
double div = NumberUtil.div(10, 3, 2);
//相除,将结果向上取整
int ceilDiv = NumberUtil.ceilDiv(10, 3);
//计算阶乘 n! = 1*2*3*...*(n-1)*n,支持long、BigInteger
long factorial1 = NumberUtil.factorial(10);
//上面默认起始值为0(不含),可指定起始值
long factorial2 = NumberUtil.factorial(10, 5);
//计算最大公约数
int divisor = NumberUtil.divisor(100, 150);
//计算最小公倍数
int multiple = NumberUtil.multiple(10, 15);
//求各种数值型的最值,参数的数值类型相同、个数不定
int min = NumberUtil.min(1, 2, 3);
int max = NumberUtil.max(1, 2, 3);
//计算等分的份数,参数分别指定总数、每份数量
int count = NumberUtil.count(115, 10);
//计算等分的每份数量(最后一份数量会少些),参数分别指定总数、份数
int partValue = NumberUtil.partValue(115, 10);
//计算String表达式的结果,只支持加减乘除、%取模
double calculate = NumberUtil.calculate("1 * 2 / 3 + 4 ");
//String的内容是否是指定数值类型
boolean isNumber = NumberUtil.isNumber("123");
//范围小的整数也算,eg. int在long范围内,也算long
boolean isInteger = NumberUtil.isInteger("123");
boolean isLong = NumberUtil.isLong("123");
//是否是浮点数,要有小数部分才算浮点数,如果只是整数则不算
boolean isDouble = NumberUtil.isDouble("123");
//是否是偶数
boolean isEven = NumberUtil.isEven(123);
//是否是奇数
boolean isOdd = NumberUtil.isOdd(123);
//是否是质数(素数)
boolean isPrimes = NumberUtil.isPrimes(123);
//判断2个BigDecimal的数值大小
boolean equals = NumberUtil.equals(new BigDecimal(1), new BigDecimal(2));
boolean isLess = NumberUtil.isLess(new BigDecimal(1), new BigDecimal(2));
boolean isLessOrEqual = NumberUtil.isLessOrEqual(new BigDecimal(1), new BigDecimal(2));
boolean isGreater = NumberUtil.isGreater(new BigDecimal(1), new BigDecimal(2));
boolean isGreaterOrEqual = NumberUtil.isGreaterOrEqual(new BigDecimal(1), new BigDecimal(2));
//数值包装类型转换String的元生parseXxx()方法,为blank时会抛出异常
int i1 = Integer.parseInt("123");
//提供将String转换为各种数值基本类型的方法,兼容blank,为blank是返回目标类型的默认值
int i2 = NumberUtil.parseInt("123");
//原生的String类型的构造方法,参数为blank或两端有空白符时会抛出异常
BigInteger bigInteger = new BigInteger("123");
BigDecimal bigDecimal = new BigDecimal("123");
//兼容blank,当做0处理
BigInteger bigInteger1 = NumberUtil.toBigInteger(" ");
BigDecimal bigDecimal1 = NumberUtil.toBigDecimal(" ");
//兼容blank、两端有空白符,返回null
BigInteger bigInteger2 = NumberUtil.newBigInteger(" 123");
//兼容参数BigDecimal为null的情况,为null时返回 BigDecimal.ZERO
BigDecimal bigDecimal2 = NumberUtil.null2Zero(null);
此处都是双闭区间 [start,stop]
//将指定区间上的整数(Integer)添加到集合中
Collection<Integer> integers1 = NumberUtil.appendRange(1, 9, new ArrayList<>());
//可指定step步长
Collection<Integer> integers2 = NumberUtil.appendRange(0, 100, 10, new ArrayList<>());
//将指定区间上的整数收集到数组中
int[] range1 = NumberUtil.range(0, 100, 10);
//缺省step时默认为1
int[] range2 = NumberUtil.range(0, 100);
//缺省start时默认为0
int[] range3 = NumberUtil.range(100);
//在指定区间上生成不重复的n个随机整数
int[] ints = NumberUtil.generateRandomNumber(1, 100, 10);
Integer[] integers = NumberUtil.generateBySet(1, 100, 10);
//将整数、浮点数格式化为指定格式的String
String decimalFormat1 = NumberUtil.decimalFormat("0.00", 1.234567);
String decimalFormat2 = NumberUtil.decimalFormat("#%", 1234567);
//将double转换为百分数,第2个参数指定百分数要保留的小数位数
String formatPercent = NumberUtil.formatPercent(1.234567, 2);
//转换为金额格式,整数部分每3位用英文逗号分隔,小数部分保留2位
String decimalFormatMoney = NumberUtil.decimalFormatMoney(1234.567);