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