0
すべてオンにしてすべての入力を検証します。私がプログラムを実行するときには、「ms」または「Ms」または「Mr」または「mr」があれば受け入れられます。しかし、私が "Mr"と入力すると、彼は私が間違って書いた最後の単語を設定し、それを-title-として設定します。その後、彼はすでに「Mr」と書かれているので、First Name入力をスキップします。プログラムは検証なしで動作します。最初の「Mr」をタイトルとして受け入れないのはなぜですか?Java入力の検証。誰もそれがうまくいかない理由を知っていますか?
System.out.println("\nTitle of the student (eg, Mr, Ms): ");
while (!keyboard.hasNext("Mr") && !keyboard.hasNext("Ms") && !keyboard.hasNext("mr") && !keyboard.hasNext("ms")) {
{
System.out.println("Attention! Title must be Mr or Ms please choose one.");
list[i].setTitle(keyboard.next());
}
}
System.out.println("First name (given name)");
list[i].setFirstName(keyboard.next());
System.out.println("A last name (family name/surname)");
list[i].setFamilyName(keyboard.next());
' nextLine'を使うと 'next'よりも良いでしょう –
ほぼ確実ですが、私はAskerの元の機能性を可能な限り厳密に守ろうとしていました。 – nhouser9
クール!!私はStackoverflowが大好きです。ありがとうございます@ nhouser9 – Stiller77