gpt4 book ai didi

Java 扫描仪字符串输入

转载 作者:IT老高 更新时间:2023-10-28 21:01:15 28 4
gpt4 key购买 nike

我正在编写一个使用 Event 类的程序,该类中包含一个日历实例和一个 String 类型的描述。创建事件的方法使用 Scanner 获取月、日、年、小时、分钟和描述。我遇到的问题是 Scanner.next() 方法只返回空格前的第一个单词。因此,如果输入是“我的生日”,那么对该事件实例的描述就是“我的”。

我做了一些研究,发现人们使用 Scanner.nextLine() 来解决这个问题,但是当我尝试这个时,它只是跳过了输入应该去的地方。这是我的代码的一部分:

System.out.print("Please enter the event description: ");
String input = scan.nextLine();
e.setDescription(input);
System.out.println("Event description" + e.description);
e.time.set(year, month-1, day, hour, min);
addEvent(e);
System.out.println("Event: "+ e.time.getTime());

这是我得到的输出:

Please enter the event description: Event description
Event: Thu Mar 22 11:11:48 EDT 2012

它跳过空格输入描述字符串,因此,描述(最初设置为空格 - “”)永远不会改变。

我该如何解决这个问题?

最佳答案

当您使用 nextInt() 之类的内容读取年月日小时分钟时,它会将其余行留在解析器/缓冲区中(即使它是空白的),因此当您调用 nextLine() 时,您正在阅读其余部分第一行。

我建议您在打印下一个提示之前调用 scan.nextLine() 以丢弃该行的其余部分。

关于Java 扫描仪字符串输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5966599/

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