package com.dy.common.util; @SuppressWarnings("unused") public class NumUtil { /** * 判断是否是正整数 * @param str String * @return boolean */ public static boolean isPlusIntNumber(String str) { if(str == null || str.trim().equals("")){ return false ; } int n = 0 ; String token = "9876543210"; for (int i = n; i < str.length(); i++) { if (!token.contains(str.substring(i, i + 1))) { return false; } } return true; } /** * 判断是否是整数 * * @param str String * @return boolean */ public static boolean isIntNumber(String str) { // 判断是否是数字 if(str == null || str.trim().equals("")) return false ; if(str.startsWith("-")){ str = str.substring(1) ; } String token = "9876543210" ; for (int i = 0; i < str.length(); i++) { if (!token.contains(str.substring(i, i + 1))) { return false; } } return true; } /** * 判断是否是整数 * * @param str String * @return boolean */ public static boolean isHex(String str) { // 判断是否是数字 if(str == null || str.trim().equals("")) return false ; if(str.length()%2 != 0) return false ; String token = "9876543210abcdefABCDEF" ; for (int i = 0; i < str.length(); i++) { if (!token.contains(str.substring(i, i + 1))) { return false; } } return true; } /** * 判断是否是浮点数 * @param str String * @return boolean */ public static boolean isDoubleNumber(String str) { // 判断是否是数字 if(str == null || str.trim().equals("")){ return false ; } String token = "9876543210.-" ; for (int i = 0; i < str.length(); i++) { if (!token.contains(str.substring(i, i + 1))) { return false; } } if(str.startsWith(".") || str.endsWith(".")){ return false ; }else{ if(str.indexOf('.') != str.lastIndexOf('.')){ return false ; } } if(str.startsWith("-")){ return str.indexOf('-') == str.lastIndexOf('-'); } return true; } /** * 判断是否是正浮点数 * @param str String * @return boolean */ public static boolean isPlusDoubleNumber(String str) { // 判断是否是数字 if(str == null || str.trim().equals("")){ return false ; } String token = "9876543210." ; for (int i = 0; i < str.length(); i++) { if (!token.contains(str.substring(i, i + 1))) { return false; } } if(str.startsWith(".") || str.endsWith(".")){ return false ; }else{ if(str.indexOf('.') != str.lastIndexOf('.')){ return false ; } } if(str.startsWith("-")){ return str.indexOf('-') == str.lastIndexOf('-'); } return true; } /** * 浮点数四舍五入 * @param d 浮点数据 * @param scale 小数位数 * @return 四舍五入后的浮点数 */ public static Double roundDouble(Double d , int scale){ if(d == null){ return null ; } return Double.valueOf(new java.text.DecimalFormat("##." + "0".repeat(Math.max(0, scale))).format(d)) ; } /** * 浮点数四舍五入 * @param d 浮点数据 * @param scale 小数位数 * @return 四舍五入后的浮点数 */ public static String roundDoubleStr(Double d , int scale){ if(d == null){ return null ; } return new java.text.DecimalFormat("#0." + "0".repeat(Math.max(0, scale))).format(d); } /** * 浮点数四舍五入 * @param d 浮点数据 * @param scale 小数位数 * @return 四舍五入后的浮点数 */ public static Float roundFloat(Float d , int scale){ if(d == null){ return null ; } // StringBuilder temp = new StringBuilder("."); // temp.append("0".repeat(Math.max(0, scale))); // return Float.valueOf(new java.text.DecimalFormat(temp.toString()).format(d)) ; return Float.valueOf(new java.text.DecimalFormat("." + "0".repeat(Math.max(0, scale))).format(d)) ; } /** * 浮点数四舍五入 * @param d 浮点数据 * @return 四舍五入后的浮点数 */ public static Float roundFloat(Float d){ if(d == null){ return null ; } return Float.valueOf(new java.text.DecimalFormat(".00").format(d)) ; } /** * 冒泡排序, * @param values 要排序的数组 * @param up true 从小到大 false 从大到小 * @return 排序后的数组 */ public static int[] sort(int[] values , boolean up){ boolean changed; int temp; int end = 0 ; for (int i = 0; i < values.length; ++i) { changed = false ; end++ ; for (int j = 0; j < values.length - end ; ++j) { if(up){ if (values[j] > values[j + 1]) { temp = values[j]; values[j] = values[j + 1]; values[j + 1] = temp; changed = true ; } }else{ if (values[j] < values[j + 1]) { temp = values[j]; values[j] = values[j + 1]; values[j + 1] = temp; changed = true ; } } } if(!changed){ break ; } } return values ; } /** * 把数据前面的0去掉 * * @param s String * @return String */ public String clean0FromStrNum(String s) { while (s.charAt(0) == '0' && s.length() > 1) { s = s.substring(1); } return s; } /** * 去掉小数点 * * @param value String * @return String */ public String cleanDotNumber(String value) { int dot = value.indexOf('.'); if (dot < 0) { return value; } if (value.length() - dot - 1 > 2) { value = value.substring(0, dot); } return value; } }