我被要求提示用户输入字符串数据,然后根据包含用户应输入的值的数据数组验证用户输入,并提示用户字符串无效。
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.
*/
}
答案 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)。你永远不知道用户将如何输入一个字符串,即使你提供了一个例子,但你又可以拒绝接受他们的输入,除非他们遵守规则!