概述
NumberUtils 是Apache封裝的處理數字類型工具類,包括校驗、轉換、比較、計算等功能,而且方法處理失敗都不會拋出異常,會返回默認值。
一、校驗功能
//檢查字符串是否是有效的Java數字
//isCreatable 慎用,有效數字包括進制標有0x或0X預選項,八進制數、科學記數法和標有類型限定符的數字
//所以08,09返回false,不是有效的八進制
NumberUtils.isCreatable("abc");//return false
NumberUtils.isCreatable("123");//return true
NumberUtils.isCreatable("08");//return false
NumberUtils.isCreatable("09");//return false
//檢查給定字符串是否是可解析的數字
NumberUtils.isParsable("abc");//return false
NumberUtils.isParsable("001");//return true
//檢查給定字符串是否是否只包含數字字符
NumberUtils.isDigits("abc");//return false
NumberUtils.isDigits("123");//return true
二、轉換功能
//將一個字符串轉換為int類型,失敗返回0
NumberUtils.toInt("123");
//將一個字符串轉換為int類型,失敗返回自定義
NumberUtils.toInt("123",1);
//將一個字符串轉換為long類型,失敗返回0
NumberUtils.toLong("123");
//將一個字符串轉換為long類型,失敗返回自定義
NumberUtils.toLong("123", 2);
//將一個字符串轉換為單精度浮點類型,失敗返回0.0
NumberUtils.toFloat("12.3");
//將一個字符串轉換為單精度浮點類型,失敗返回自定義
NumberUtils.toFloat("12.3", 2.1f);
//將一個字符串轉換為雙精度浮點類型,失敗返回0.0
NumberUtils.toDouble("2.1");
//將一個字符串轉換為雙精度浮點類型,失敗返回自定義
NumberUtils.toDouble("2.1", 1.0d);
//將一個字符串轉換為BigDecimal,默認保留2位小數,舍入模式為RoundingMode.HALF_EVEN
NumberUtils.toScaledBigDecimal("2.1");
//將一個字符串轉換為BigDecimal,自定義小數位數,自定義舍入模式
NumberUtils.toScaledBigDecimal("2.1", 2, RoundingMode.HALF_UP);
三、比較計算
//獲取最大最小值,支持各種類型
int[] array = {2, 4, 6, 10};
//獲取數組中最小的元素,并返回
NumberUtils.min(array);
//獲取數據中最大的元素,并返回
NumberUtils.max(array);
int n = 1, n1 = 4, n2 = 10;
//獲取n個變量最小值
NumberUtils.min(n, n1, n2);
//獲取n個變量最大值
NumberUtils.max(n, n1, n2);
//比較大小,大于返回1,等于返回0,小于返回-1
NumberUtils.compare(n, n1);