gpt4 book ai didi

java - 扫描仪 nextLine() 问题

转载 作者:行者123 更新时间:2023-12-01 23:03:14 27 4
gpt4 key购买 nike

我一直在做一项充当拼字游戏词典的编程作业。该程序接受用户的输入,并根据用户从菜单中请求的内容输出包含单词列表的文件。我遇到的问题与 Scanner.nextLine() 有关。

我不太清楚为什么,但由于某种原因,有时我必须按一次 Enter 键,然后我的代码才会接受我的输入并将其存储为变量。本质上,我最终输入了两次。我尝试在代码周围插入 Scanner.nextLine() 以“占用”空的输入/空格,但它不起作用,我必须多次按 Enter 才能让它处理我想要的内容。

有人有什么建议吗?我将不胜感激任何和所有的帮助。

这里是一些代码:

System.out.println("Enter the length of the word you are" + " searching for.");
int n = -1;
while(!(n >=0)) {
if(in.hasNextInt())
n = in.nextInt();
else {
System.out.println("You have not entered a valid number.
Please enter a real number this time.");
in.nextLine();
}
}
in.nextLine();
System.out.println("Enter the first letter of the words" + " you are searching for.");
String firstLetter = "";
while(!(firstLetter.length() == 1)) {
if(in.nextLine().length() > 1) {
System.out.println("You have not entered a valid letter.
Please press enter and enter only one real letter.");
}
else if(in.hasNextInt()) {
System.out.println("Do not enter a number. Please enter one real letter.");
}
else {
in.nextLine();
firstLetter = in.nextLine();
break;
}
}

最后,我必须按一次 Enter 键,然后输入才能将任何内容存储在变量firstLetter 中。我认为这与 nextLine() 的性质有关,因为使用 nextInt() 的条件没有任何问题。

最佳答案

这是因为你同时使用了 nextLine() 和 nextInt(),发生的情况是 nextLine() 正在搜索新行(回车),如果通过 System 输入任何整数,nextInt 将自动停止搜索。英寸。

经验法则:只需使用 Scanner.nextLine() 作为输入,然后通过 Integer.parseInt(string) 等相应地从 Scanner.nextLine() 转换字符串。

关于java - 扫描仪 nextLine() 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23189546/

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