美好的一天!
我有一个具有属性String studentNo
的类Student使用OO,如何验证输入是否为11位数
我可以这样做:
If(studentNo.length()<11){
}
验证..但我如何确定它是否是数字。
关于如何进行此验证的其他方法是什么。
任何帮助都将受到高度赞赏。 谢谢。
答案 0 :(得分:5)
您可能希望使用正则表达式,如下所示:
^[0-9]{11}$
答案 1 :(得分:3)
您可以查看以下内容:
对于复杂的检查,您经常将结果存储在布尔值中。首先将其设置为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) {
...
}
然而,就“不使用异常作为输入检查形式”范例而言,正则表达式解决方案可能更优雅(异常处理通常比简单检查更昂贵)。因此,这取决于您是希望代码在语义上是清晰的还是希望它是否有效。