当前位置: 首页 > 面试题库 >

Java扫描器字符串输入

颜修明
2023-03-14
问题内容

我正在编写一个使用Event类的程序,该类中有一个日历实例和一个String类型的描述。创建事件的方法使用扫描仪获取月,日,年,小时,分钟和说明。我遇到的问题是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()。



 类似资料:
  • 在while循环的末尾,我使用scanner类从用户那里获取一个字符串作为输入,但它不接受任何输入。 请引导我。

  • 问题内容: 我试图找到一种方法来从键盘输入。 我尝试使用: 该方法不存在。 我尝试了作为。但是,它并不总是在每种情况下都可行,因为我从我的方法中调用的另一个方法需要作为输入。因此,我必须找到一种显式将char作为输入的方法。 有什么帮助吗? 问题答案: 你可以从中提取第一个字符: 消耗正好一个字符,你可以使用: 要严格使用一个字符,可以使用:

  • 我有以下3种方法: > 方法:获取文本并将其单词拆分为特定字符串,然后将其放入字符串数组中。 方法:计算数组中仅由大小写字母组成的字符串的数量。 现在问题来了,如果我调用第三个方法首先通过生成一个文本。 但不知怎么的,代码只是跳过了行text=input.nextLine();并抛出异常(MSG)字符串为空。执行文本“Enter a text:”,后面直接跟着异常。但我无法输入任何文本。 如果我将

  • 这里是Java新手,尝试扫描下面表单中的输入: 3 3 3 101 000 101 拜托,有更有经验的人能教我如何解决这个问题吗?我发现一些问题与。nextline()和。nextint()有类似的问题,但不完全是这样。不过,如果真的是复制品,我提前道歉... (如果需要,我会添加更多信息)

  • 我这里有两个代码块。一个扫描器正确地等待用户输入,另一个则直接通过它并调用,返回。下面是工作的块: 下面是没有的块: 这两个都是单独的类,并且是从另一个类中的main方法调用的。基本上,调用,后者又调用某个Player类的方法...这是非工作代码所在的地方。程序中是否有不适合接受输入的时候?我的印象是,任何时候我需要用户输入,我都可以使用这种方法。谢谢!