if (!NumberUtil.isInteger(excelUserDto.getJobNumber())) {
describe.append("工号必须是纯数字").append("\r\n");
}
为啥我输入JobNumber为13787870101为报“工号必须是纯数字”?
NumberUtil.isInteger(String str) 实际上是判断这个字符串是否可以被 安全地解析为 Java 的 Integer 类型(即 32 位有符号整数)。
NumberUtil.isInteger(“13787870101”) 返回 false,是因为它超出 Integer 的最大范围,而不是因为它不是纯数字。
解决方法:
可以使用:
if (!StrUtil.isNumeric(excelUserDto.getJobNumber())) {
describe.append("工号必须是纯数字").append("\r\n");
}
或者使用正则:
if (!excelUserDto.getJobNumber().matches("\\d+")) {
describe.append("工号必须是纯数字").append("\r\n");
}