簡體   English   中英

驗證Java中的用戶輸入(字符串)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM