gpt4 book ai didi

java - Scanner.nextLine() 不像我想象的那样工作

转载 作者:行者123 更新时间:2023-12-01 11:17:27 25 4
gpt4 key购买 nike

我正在为我和 friend 玩的奇幻桌面游戏创建一个随机名称生成器。一切正常,除了当我去扫描 nextLine() 来获取描述时,程序不会等待输入,而是返回到 while 循环的开头。我想要做的是能够输入关于他们正在交互的角色的简短句子,并将其设置为字符串值描述,稍后我的目标是在创建它们时将这些值打印在文本文档中以供将来使用。我该部分的代码如下所示。非常感谢任何帮助。

    System.out.println("Male (m) Female (f) Quit (q)");
ui = UserInput.next();
while(!(ui.equals("q"))){
if(ui.equals("m")){
mName = maleNameGenerator(MS, SS, MaleNamesArray, SurnamesArray);
System.out.println(mName);
System.out.print("Location: ");
Location = UserInput.next();
System.out.print("Profession: ");
Profession = UserInput.next();
System.out.print("Description: ");
Description = UserInput.nextLine();
}
else if(ui.equals("f")){
fName = femaleNameGenerator(FS, SS, FemaleNamesArray, SurnamesArray);
System.out.println(fName);
}
else if(!(ui.equals("q"))){
System.out.println("Please input valid choice.");
}
System.out.println("Male (m) Female (f) Quit (q)");
ui = UserInput.next();
ui.toLowerCase();
}
UserInput.close();

最佳答案

next() 方法在接受输入后留下一个换行符。在您的代码中,nextLine() 方法仅使用此换行符并忽略实际输入。您可以添加另一个 nextLine() 以确保接收到输入。

...
System.out.print("Description: ");
UserInput.nextLine();
Description = UserInput.nextLine();

使用其他非字符串类型扫描仪输入方法(nextInt()nextDouble() 等)时也会出现此问题。解释和解决方案是相同的。

关于java - Scanner.nextLine() 不像我想象的那样工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31642546/

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