我是java初学者,遇到的问题是我不确定如何将输入验证链接在一起,以便对用户的错误输入做出正确的响应。例如,当用户输入的不是字母的内容时,程序会告诉用户他们输入的不是字母,但是如果我输入多个字母,程序就不会打印出正确的响应。这取决于用户首先犯的错误。
感谢所有反馈。
String input;
final Pattern alphabet = Pattern.compile("^[A-Za-z]$");
Scanner kb = new Scanner(System.in);
System.out.println("Enter a letter of the alphabet: ");
input = kb.nextLine();
while (!alphabet.matcher(input).matches())
{
System.out.println("That's not a letter, try again.");
input = kb.nextLine();
}
while (input.length() > 1 )
{
System.out.println("Please enter only one letter");
input = kb.nextLine();
}
kb.close();
1条答案
按热度按时间fivyi3re1#
你可以试着这样做:在if中使其成为check条件并得到结果
或者您可以将您的输入分配给一个新的类包(input、error和have an error or or not),使其更灵活。
首先,您不应该使用while循环来检查条件。
第二,正确设计程序循环>验证错误。
你应该做更多好的实用和干净的代码比你可以很容易地找到错误。尽量少用循环,这样会导致更多的错误和程序内存占用