gpt4 book ai didi

java - 测量扫描仪输入长度

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:56:53 24 4
gpt4 key购买 nike

我想要一个会要求用户输入一个字符的扫描仪,但是如果输入了多个字符,它应该再次提示用户只输入一个字符。

这是我目前所拥有的:

System.out.print("(Player 2) Guess a letter: ");
Scanner letterScan = new Scanner(System.in);
while(letterScan.nextLine().length()>1)
{
System.out.print("(Player 2) Please guess only one letter: ");

//char inputLetter = letterScan.next().charAt(0);
}
char inputLetter = letterScan.next().charAt(0);
System.out.println("letter: " + inputLetter);

唯一的问题是,这是我运行时的输出:

(Player 2) Guess a letter: asfa
(Player 2) Please guess only one letter: a
s
letter: s

你看到第三行了吗?它要求另一个提示。我想摆脱它并让它使用输出中第二行中的字母。有什么想法吗?

最佳答案

letterScan.next() 行在您得到正确的行后读取了一个额外的字符。您需要保存您收到的第一个输入的 1 个字符,如下所示:

System.out.print("(Player 2) Guess a letter: ");
Scanner letterScan = new Scanner(System.in);
String line = "";
//just check for one character.
while((line=letterScan.nextLine()).length()!=1)
{
System.out.print("(Player 2) Please guess only one letter: ");
}
char inputLetter = line.charAt(0);
System.out.println("letter: " + inputLetter);

同时更改您的 while 循环以仅检查输入有 1 个字符,否则玩家只需按回车键,您的代码就会崩溃,因为输入有 0 个字符。上面的代码也是这样做的。

关于java - 测量扫描仪输入长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17889766/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com