import java.util.regex.Pattern;
/**
* 【Java】利用正则表达式判断字符串是否是数字(包括正负整数和浮点数)
*/
public class NumberUtils {
private static Pattern IS_INT = Pattern.compile("^-?[1-9]\\d*$");
private static Pattern IS_DOUBLE = Pattern.compile("^-?([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*|0?\\.0+|0)$");
/**
* 是否为正负整数
* @param str 字符串
* @return boolean
*/
public static boolean isInteger(String str) {
return IS_INT.matcher(str).find();
}
/**
* 是否为正负浮点数
* @param str 字符串
* @return boolean
*/
public static boolean isDouble(String str) {
return IS_DOUBLE.matcher(str).find();
}
/**
* 是否为数字
* @param str 字符串
* @return boolean
*/
public static boolean isNumber(String str) {
return isInteger(str) || isDouble(str);
}
}