import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* * @Description 数字工具
* * @Author arpslyl
* * @CreateDate 2021/5/27
* * @Version 1.0
* * @Remark TODO
**/
public class NumberUtils {
public static boolean isEmpty(String str) {
return str == null || str.length() == 0;
}
/**
* 用正则判断是否为数字
*
* @param str
* @return
*/
public static boolean isNumeric(String str) {
Pattern pattern = Pattern.compile("-?[0-9]+(\\.[0-9]+)?");
Matcher isNum = pattern.matcher(str);
if (!isNum.matches()) {
return false;
}
return true;
}
/**
* 自己写一个判断是否为数字
*
* @param str
* @return
*/
public static boolean isNumStr(String str) {
//为空
if (isEmpty(str)) {
return false;
}
//如果只有一个.或-号和-.
if ((str.startsWith(".") || str.startsWith("-")) && str.length() == 1) return false;
if (str.startsWith("-.") && str.length() == 2) return false;
boolean haveDot = false;
for (int i = 0; i < str.length(); i++) {
char nowChar = str.charAt(i);
if (i == 0 && '-' == nowChar) continue;
if ('.' == nowChar) {
if (haveDot) {
return false;
} else {
haveDot = true;
}
continue;
}
if (48 > nowChar || nowChar > 57) {
return false;
}
//也可以
// if (!Character.isDigit(nowChar)) {
// return false;
// }
}
return true;
}
}