我正在试图弄清楚如何验证一个程序的用户输入,该程序要求将日期,月份和年份作为“密码”,如果它们出错,则显示错误消息。日期,月份和年份必须是字符串。这就是我到目前为止:


 import java.util.Scanner;
 public class Calculator {

 public static void main(String [] args){
扫描仪控制台=新扫描仪(System.in);
的System.out.println( “登录”);

 String day =“”;
做{
 System.out.println(“今天的日子?”);
 while(!sc.hasNextString()){
 System.out.println(“ERROR Please again again”);
 sc.next();
 }

 day = sc.nextString();
 } while(day> = 1&& day< = 31);
 System.out.println(“今天的月份?”);
 }

 String month =“”;
 String year =“”;
}



 Eclipse给我一条错误消息“sc无法解析”。不知道该怎么做。另外,我是否必须使用相同的代码来验证月份和年份?我是Java的极端新手所以非常感谢任何指导,谢谢< 3

答案 0 :(得分:0)
这是我解决问题的方法:
import java.util.Scanner;
public class ValidateDate {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String day, month, year;
boolean validatedDate = false;
day = scan.nextLine();
month = scan.nextLine();
year = scan.nextLine();
if (validatedInterval(day,1,31) && validatedInterval(month,1,12) && validatedInterval(year,1900,2015)) {
validatedDate = true;
}
if (!validatedDate) {
System.out.println("This is an incorrect date");
}
scan.close();
}
public static boolean validatedInterval(String value, int min, int max) {
boolean validated = false;
if (Integer.parseInt(value)>=min && Integer.parseInt(value)<=max) {
validated = true;
}
return validated;
}
}
这是该计划的输出:
33
11
2011
This is an incorrect date