最近工作中接到一个需求,
要求验证客户输入的证件号前两位是否是12、11、13、45、69、87其中一个,本来想的for循环就解决了,写了如下代码:
public static void main(String[] args) {
//创建数组,包含验证条件
String[] a = { "12","11","13","45","69","87" } ;
//暂定873456789为证件号
String b = "873456789";
//截取证件号前两位
String c = b.substring(0,2);
//和验证条件以此对
for (int i = 0 ; i < a.length ; i++){
//判断是否满足验证条件
if (!a[i].equals(c)){
System.out.println("证件号不正确!");
}else {
System.out.println("证件号正确,继续进行流程!");
}
}
}
得到结果为
证件号不正确!
证件号不正确!
证件号不正确!
证件号不正确!
证件号不正确!
证件号正确,继续进行流程!
但是验证不可能把同一个错误信息弹出多次,不符合用户需求,所以做了如下调整:
public static void main(String[] args) {
//创建数组,包含验证条件
String[] a = { "12","11","13","45","69","87" } ;
//暂定873456789为证件号
String b = "873456789";
//截取证件号前两位
String c = b.substring(0,2);
//新建判断条件用的值
boolean d =false;
//和验证条件以此对
for (int i = 0 ; i < a.length ; i++){
//判断是否满足验证条件
if (a[i].equals(c)){
//符合条件,d变为true
d=true;
}
}
//若不符合,d还为false输出错误信息
if (d==false){
System.out.println("证件号不正确!");
}
}
验证通过,不输出消息,若验证不通过,则只输出一次错误信息!
证件号不正确!
希望可以帮助新手入门更加容易些!