首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java扫描器字符串输入

Java扫描器字符串输入
EN

Stack Overflow用户
提问于 2011-05-11 23:17:59
回答 5查看 279.6K关注 0票数 20

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

我做了一些研究,发现人们在这个问题上使用了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

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

我该如何解决这个问题呢?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-05-11 23:30:24

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

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

票数 23
EN

Stack Overflow用户

发布于 2017-07-04 18:54:45

    Scanner ss = new Scanner(System.in);
    System.out.print("Enter the your Name : ");
    // Below Statement used for getting String including sentence
    String s = ss.nextLine(); 
   // Below Statement used for return the first word in the sentence
    String s = ss.next();
票数 2
EN

Stack Overflow用户

发布于 2018-11-05 15:42:48

如果紧跟在nextInt()方法之后使用nextLine()方法,nextInt()将读取整数标记;因此,该行整数输入的最后一个换行符仍在输入缓冲区中排队,而下一个nextLine()将读取整数行的其余部分(为空)。所以我们可以通过读取空格来读取另一个字符串。检查下面的代码。

import java.util.Scanner;

public class Solution {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);

        int i = scan.nextInt();
        Double d = scan.nextDouble();
        String f = scan.nextLine();
        String s = scan.nextLine();


        // Write your code here.

        System.out.println("String: " + s);
        System.out.println("Double: " + d);
         System.out.println("Int: " + i);
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5966599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档