如何在Java中验证字符串用户对字符串数组的输入

时间:2018-01-20 22:03:54

标签: java arrays string arraylist

我被要求提示用户输入字符串数据,然后根据包含用户应输入的值的数据数组验证用户输入,并提示用户字符串无效。

 public static void main(String[] args)
 {
    Scanner keyboard = new Scanner(System.in);

    //List of values the user suppose to enter

   String[] list = {"Monday","Thusday", "Wednesday", "Thusday", 
                   "Friday", "Saturday", "Sunday"}


     System.out.println("Enter a day:"\n Eg: Monday or Thursday")
     String day = keyboard.next();

 /**
   What should I write so that I can validate the user input against an
   string array of days? And prompt the user again if his input is not 
   a day.

 */

}

2 个答案:

答案 0 :(得分:0)

这应该有效

public static void main(String[] args)
{
    Scanner keyboard = new Scanner(System.in);

    //List of values the user suppose to enter

    String[] list = {"Monday","Thusday", "Wednesday", "Thusday", 
            "Friday", "Saturday", "Sunday"};

    System.out.println("Enter a day:");
    String day = keyboard.next();

    if(!Arrays.asList(list).contains(day)) {
        System.out.println("Input is not a day!");
    }
}

答案 1 :(得分:0)

您可以使用 for 循环(或 do/while 循环或 {{3}循环遍历数组} 循环)然后while用户的输入与每个compare中包含的输入,以查看是否匹配。

你甚至可以把它带到......如果用户输入星期一而不是星期一怎么办?或者,如果用户输入星期一星期一而不是星期一,该怎么办?您可以在循环数组期间处理这些情况(如果需要)(例如,在 for 循环array element内)。

如果用户输入星期一而不是星期一,请阅读如何使用Java的code block String.toLowerCase()和/或String.toUppercase()方法。

如果用户输入星期一而不是星期一,请阅读如何使用Java的String.equalsIgnoreCase()String.length()方法。

您当然可以将这些特定情况包含在您的String数组中,例如:

{mon, Mon, monday, Monday, MONDAY, tue, Tue, tuesday, Tuesday, TUESDAY, ...etc...}

然而,这没什么好玩的,更容易出错(tUesDay)。你永远不知道用户将如何输入一个字符串,即使你提供了一个例子,但你又可以拒绝接受他们的输入,除非他们遵守规则!