New file |
| | |
| | | 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; |
| | | } |
| | | |
| | | } |