java - 哪个更好 - Integer.parseInt() 并捕获异常或在转换前使用模式验证字符串?

标签 java

<分区>

我见过两种在 Java 中检查变量是否为有效整数的样式。一种方法是执行 Integer.parseInt 并捕获任何由此产生的异常。另一种是使用模式。 以下哪种方法更好?

String countStr;
int count;
try {
    count = Integer.parseInt(countStr);
} catch (Exception e) {
    //return as the variable is not a proper integer.
    return;
}

String integerRegex = "([0-9]{0,9})";
if (countStr.isEmpty() || !Pattern.matches(integerRegex, countStr)) {
    //return as the variable is not a proper integer.
    return;
}

我的问题是,执行 Integer.parseInt() 并捕获异常以验证是否是验证 int 的标准方法?我承认我的正则表达式并不完美。但是 Java 中是否有任何内置方法可用于验证 int?实际上,做一些验证而不是简单地捕获异常不是更好吗?

最佳答案

使用上述方法更好,因为它考虑了所有类型的可能错误并处理了所有情况。例如,您所写的内容将无法正确解析负数。

只有当您想验证所有整数的给定子集时,编写自己的 validator 才有意义。

一般建议:除非有充分的理由,否则不要重新发明轮子。

关于java - 哪个更好 - Integer.parseInt() 并捕获异常或在转换前使用模式验证字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17085502/

相关文章:

java - 从android解析jsonObject并在webservice vb.net中获取它

java - 在 Eclipse 中设置 MAVEN_HOME

java - GWT DefaultLocalizedNames 使用当前区域设置

java - Java Socket 编程场景

java - 错误:无法使用Gradle分发执行构建

java - 尝试在 Java 中简单地实现 MD5 散列

java - 将递归转换为迭代

java - 如何在 Embedded JDK compact 中使用 log4j 1/2/3

java - ResultSet:按索引检索列值与按标签检索

java - 无阻塞读取json流