package validation;
import java.util.*;
public class Validation {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String regex = "^[a-zA-Z ]+$";
String regex1 = "\\d[0123456789]";
String Char;
String Num;
do {
System.out.print("What Is Your Name:");
Char = input.nextLine();
if (Char.matches(regex))
System.out.println("Welcome"+" "+Char);
else if (Char.isEmpty())
System.out.println("String field should not be Empty.");
else if(!Char.matches(regex))
System.out.println("Please Enter A Valid String!");
} while(!Char.matches(regex));
do {
System.out.println("How Old Are you:");
Num = input.nextLine();
if (Num.matches(regex1))
System.out.println("You Are"+" "+Num);
else if (Num.isEmpty())
System.out.println("Number field should not be Empty.");
else if(!Num.matches(regex1))
System.out.println("Please Enter A Valid Number!");
} while(!Num.matches(regex1));
}
}
您现在看到的是一个正常工作的代码,我对它没有任何问题。我想问的是,如果我想在我的代码上添加另一个功能,例如,如果您在数字输入字段中键入下面的数字18,它将为您提供此输出:
"Your are uderage".
答案 0 :(得分:1)
如果我找到了你,你只需在你的支票上添加另一个if语句:
...
do {
System.out.println("How Old Are you:");
Num = input.nextLine();
// input is numeric?
if (Num.matches(regex1)) {
if (Integer.valueOf(Num) >= 18) {
System.out.println("You Are " + Num)
} else {
System.out.println("You are uderage")
}
} else if (Num.isEmpty()) {
System.out.println("Number field should not be Empty.");
} else if(!Num.matches(regex1)) {
System.out.println("Please Enter A Valid Number!");
}
} while(!Num.matches(regex1));
...
一般来说,其他答案中关于代码约定的评论当然是正确的。
您还可以查看常用的库,例如Apache Commons Lang (StringUtils)。这些有助于避免常见问题,例如缺少空检查或提供有用的功能,例如isNumeric
检查字符串。
答案 1 :(得分:0)
首先,您应该将其存储在String
中,而不是在int
中存储年龄。
第二个变量名应始终以小写字母开头。它应该是num
而不是Num
。
如果您想要在代码中完成它,那么您可以这样做。
do {
System.out.println("How Old Are you:");
Num = input.nextLine();
if (Num.isEmpty()){
System.out.println("Number field should not be Empty.");
break;
}
else if (!Num.matches(regex1)){
System.out.println("Please Enter A Valid Number!");
break;
}
else{
if(Integer.parseInt(NUM)<18){
System.out.println("Underage, exiting");
break;
}
else
System.out.println("You Are"+" "+Num);
}
}while(!Num.matches(regex1));
代码约定java:Code conventions
答案 2 :(得分:0)
您可以为已有的条件语句添加简单的条件语句。我使用Integer.valueOf()
,因为您已将Num
定义为String
。
if (Num.matches(regex1))
System.out.println("You Are" + " " + Num);
else if (Num.isEmpty())
System.out.println("Number field should not be Empty.");
else if (!Num.matches(regex1))
System.out.println("Please Enter A Valid Number!");
else if (Integer.valueOf(Num) < 18) {
System.out.println("You Are" + " " + Num + "so you're underaged");
}
也许您应该将Num的类型设置为int
并使用input.nextInt()
来读取整数值而不是String。