如何验证studentNo是否为11位数

时间:2011-05-09 05:08:58

标签: java

美好的一天!

我有一个具有属性String studentNo

的类Student

使用OO,如何验证输入是否为11位数

我可以这样做:

If(studentNo.length()<11){

}

验证..但我如何确定它是否是数字。

关于如何进行此验证的其他方法是什么。

任何帮助都将受到高度赞赏。 谢谢。

5 个答案:

答案 0 :(得分:5)

您可能希望使用正则表达式,如下所示:

^[0-9]{11}$

答案 1 :(得分:3)

您可以查看以下内容:

  • 字符串的长度为11。
  • 11个字符中的每一个都是零,一,二,三,四,五,六,七,八或九。

对于复杂的检查,您经常将结果存储在布尔值中。首先将其设置为true,如果任何条件失败,则将其设置为false。然后,你最终知道所有条件是否成立,并认为它仍然是真的。

答案 2 :(得分:2)

bool isNum = true;
try {
    Integer.parseInt(studentNo);
}
catch (NumberFormatException e {
    // if we hit here it is not a number...
    isNum = false;
}

答案 3 :(得分:0)

使用正则表达式:

http://en.wikipedia.org/wiki/Regular_expression

例如,在java中你可以这样做:

studentNo.matches( “[0-9] {11}”);

答案 4 :(得分:0)

从语义上讲,你可以使用

try {
    new BigInteger(studentNo);
} catch (NumberFormatException e) {
    ...
}

然而,就“不使用异常作为输入检查形式”范例而言,正则表达式解决方案可能更优雅(异常处理通常比简单检查更昂贵)。因此,这取决于您是希望代码在语义上是清晰的还是希望它是否有效。