用Java验证用户输入(字符串)

时间:2016-10-07 15:03:16

标签: java string validation

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




  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




1 个答案:

答案 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
相关问题