public class NumberUtil {
private static Pattern patternIsNumeric = Pattern.compile("-?[0-9]+(\\.[0-9]+)?");
/**
* 判断字符串是否为数字,包括小数点
*
* @param str
* @return
*/
public static boolean isNumberic(String str) {
if (str == null) {
return false;
}
if (str.length() == 0) {
return false;
}
String bigStr;
try {
bigStr = new BigDecimal(str).toString();
} catch (Exception e) {
//异常 说明包含非数字。
return false;
}
Matcher isNum = patternIsNumeric.matcher(str);
if (!isNum.matches()) {
return false;
}
return true;
}
/**
* 判断Integer 是否为null
*
* @param str
* @return
*/
public static boolean isIntegerNull(Integer str) {
return str == null;
}
/**
* 判断Integer 是否不为null
*
* @param str
* @return
*/
public static boolean isIntegerNotNull(Integer str) {
return str != null;
}
/**
* 判断Integer 是否不为null 并且 大于0
*
* @param str
* @return
*/
public static boolean isIntegerNotNullAndGreaterThan0(Integer str) {
if (str == null) {
return false;
}
return str > 0;
}
/**
* 判断 Long 是否为null
*
* @param str
* @return
*/
public static boolean isLongNull(Long str) {
return str == null;
}
/**
* 判断 Long 是否不为null
*
* @param str
* @return
*/
public static boolean isLongNotNull(Long str) {
return str != null;
}
/**
* 判断 Long 是否不为null
*
* @param str
* @return
*/
public static boolean isLongNotNullAndGreaterThan0(Long str) {
if (str == null) {
return false;
}
return str > 0;
}
/**
* 赋值,自动判断 null,如果为null 时,自动返回 value值
*
* @param str
* @param value 默认值
* @return
*/
public static Integer toInt(Integer str, Integer value) {
if (isIntegerNull(str)) {
return value;
}
return str;
}
/**
* 赋值,自动判断 null,如果为null 时,自动返回 value值
*
* @param str
* @return
*/
public static Integer toInt(Integer str) {
return toInt(str, 0);
}
/**
* 赋值,自动判断 null,如果为null 时,自动返回 value值
*
* @param str
* @return
*/
public static Integer toInt(Long str) {
return toInt(str.intValue(), 0);
}
/**
* 赋值,自动判断 null,如果为null 时,自动返回 value值
*
* @param str
* @return
*/
public static Integer toInt(Double str) {
return toInt(str.intValue(), 0);
}
/**
* 赋值,自动判断 null,如果为null 时,自动返回 value值
*
* @param str
* @return
*/
public static Integer toInt(Float str) {
return toInt(str.intValue(), 0);
}
/**
* 赋值,自动判断 null,如果为null 时,自动返回 value值
*
* @param str
* @param value 默认值
* @return
*/
public static Long toLong(Long str, Long value) {
if (isLongNull(str)) {
return value;
}
return str;
}
/**
* 赋值,自动判断 null,如果为null 时,自动返回 value值
*
* @param str
* @return
*/
public static Long toLong(Long str) {
return toLong(str, 0L);
}
/**
* 赋值,自动判断 null,如果为null 时,自动返回 value值
*
* @param str
* @return
*/
public static Long toLong(Integer str) {
return toLong(str.longValue(), 0L);
}
/**
* 赋值,自动判断 null,如果为null 时,自动返回 value值
*
* @param str
* @return
*/
public static Long toLong(Double str) {
return toLong(str.longValue(), 0L);
}
/**
* 赋值,自动判断 null,如果为null 时,自动返回 value值
*
* @param str
* @return
*/
public static Long toLong(Float str) {
return toLong(str.longValue(), 0L);
}
/**
* 判断Integer[] 是否为null
*
* @param str
* @return
*/
public static boolean isArrNotNull(Integer[] str) {
return str != null && str.length > 0;
}
/**
* 判断 Long[] 是否为null
*
* @param str
* @return
*/
public static boolean isArrNotNull(Long[] str) {
return str != null && str.length > 0;
}
/**
* 转换 long 如果不存在,在使用默认值
*
* @param str
* @param defaultValue
* @return
*/
public static long toLong(String str, long defaultValue) {
return NumberUtils.toLong(str, defaultValue);
}
/**
* 转换 long 如果不存在,在使用默认值 0
*
* @param str
* @return
*/
public static long toLong(String str) {
return NumberUtils.toLong(str, 0L);
}
/**
* 转换 long 如果不存在,在使用默认值 0
*
* @param str
* @return
*/
public static long toLong(int str) {
return (long) str;
}
/**
* 转换 long 如果不存在,在使用默认值 0
*
* @param str
* @return
*/
public static long toLong(float str) {
return (long) str;
}
/**
* 转换 long 如果不存在,在使用默认值 0
*
* @param str
* @return
*/
public static long toLong(double str) {
return (long) str;
}
/**
* 转换 long 如果不存在,在使用默认值 0
*
* @param str
* @return
*/
public static long toLong(BigDecimal str) {
return NumberUtils.toLong(str.toString(), 0L);
}
/**
* 转换 int 如果不存在,在使用默认值 0
*
* @param str
* @return
*/
public static int toInt(String str) {
return NumberUtils.toInt(str, 0);
}
/**
* 转换 int 如果不存在,在使用默认值
*
* @param str
* @return
*/
public static int toInt(String str, int defaultValue) {
return NumberUtils.toInt(str, defaultValue);
}
/**
* 转换 int 如果不存在,在使用默认值
*
* @param str
* @return
*/
public static int toInt(BigDecimal str) {
return NumberUtils.toInt(str.toString(), 0);
}
/**
* 转换 int 如果不存在,在使用默认值 0
*
* @param str
* @return
*/
public static int toInt(long str) {
return (int) str;
}
/**
* 转换 int 如果不存在,在使用默认值 0
*
* @param str
* @return
*/
public static int toInt(float str) {
return (int) str;
}
/**
* 转换 int 如果不存在,在使用默认值 0
*
* @param str
* @return
*/
public static int toInt(double str) {
return (int) str;
}
/**
* 判断 Float 是否为null
*
* @param str
* @return
*/
public static boolean isFloatNull(Float str) {
return str == null;
}
/**
* 判断 Double 是否为null
*
* @param str
* @return
*/
public static boolean isDoubleNull(Double str) {
return str == null;
}
/**
* 判断 Float 是否不为null 并且 大于0
*
* @param str
* @return
*/
public static boolean isFloatNotNullAndGreaterThan0(Float str) {
if (str == null) {
return false;
}
return str > 0;
}
/**
* 判断 Float 是否不为null 并且 大于0
*
* @param str
* @return
*/
public static boolean isDoubleNotNullAndGreaterThan0(Double str) {
if (str == null) {
return false;
}
return str > 0;
}
/**
* 判断 Float 是否为null
*
* @param str
* @return
*/
public static boolean isFloatNotNull(Float str) {
return str != null;
}
/**
* 判断 Double 是否为null
*
* @param str
* @return
*/
public static boolean isDoubleNotNull(Double str) {
return str != null;
}
}