[英]Validating user input in Java (strings)
我試圖弄清楚如何驗證要求輸入日期,月份和年份作為“密碼”的程序的用戶輸入,如果輸入錯誤,則顯示錯誤消息。 日期,月份和年份必須是字符串。 這是我到目前為止的內容:
import java.util.Scanner;
public class Calculator {
public static void main (String[]args){
Scanner console = new Scanner(System.in);
System.out.println("Login");
String day = "";
do {
System.out.println("Today's day?");
while (!sc.hasNextString()) {
System.out.println("ERROR Please try again");
sc.next();
}
day = sc.nextString();
} while (day >= 1 && day <= 31);
System.out.println("Today's month?");
}
String month = "";
String year = "";
}
Eclipse給我一條錯誤消息,提示“無法解決sc”。 不知道該怎么辦。 另外,我是否必須執行相同的代碼來驗證月份和年份? 我是Java的極端新手,因此非常感謝<3
這是我對問題的解決方案:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.