这是我拥有的基本程序的一部分。我正在努力防止错误或错误信息通过。所以在这部分代码中,我将它设置在用户输入他们的名字的地方,但如果它包含数字或符号,它应该返回一个错误,直到输入适当的内容。但是,这只有时有效。我无法弄清楚它何时会或不会起作用的任何模式。我唯一注意到的是,时间越长,通过的可能性就越大。
import java.util.Scanner;
public class Challenge1Easy
{
public static void main(String[] args)
{
Scanner reader = new Scanner(System.in);
String name, username;
int age;
boolean good = false;
System.out.print("What's your name? ");
name = reader.nextLine();
String[] name1 = name.split("");
do
{
System.out.print("Sorry, your \"name\" has characters that aren't letters in it. Please enter a real name. ");
name = reader.nextLine();
String[] name2 = name.split("");
for (int i = 0; i < name.length(); i++)
{
if(!Character.isLetter(name.charAt(i)))
{
good = false;
}
else
{
good = true;
}
}
}
while(good != true);
我在这里查看了一些不同的问题,并从这些问题/答案中提取了一些信息,并尝试在我的程序中实现它,但显然有些东西不起作用。我做错了什么,有时它会抓住它,但有时它不会?输入类似Man99
的内容将导致提示输入新名称。但是,输入类似的khewriuhweiuf8489358934589734985345hiewf
内容不会激活它。
请忽略任何未使用的变量。它们稍后在程序中使用,但不影响我发布的内容。