Scanner类无法接受字符串输入

时间:2016-02-07 11:11:59

标签: java

这是一个简单的java代码..但是Scanner类没有将字符串作为输入。为什么呢?

public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int x=sc.nextInt();
        double y=sc.nextDouble();
        String s =sc.nextLine();

        System.out.println("String: "+s);
        System.out.println("Double: "+y);
        System.out.println("Int: "+x);
}

2 个答案:

答案 0 :(得分:2)

由于sc.nextInt()sc.nextDouble()方法不使用输入的换行符,因此在下一次调用sc.nextLine()时会消耗换行符

public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int x=sc.nextInt();
        sc.nextLine(); 
        double y=sc.nextDouble();
        sc.nextLine();
        String s =sc.nextLine();

        System.out.println("String: "+s);
        System.out.println("Double: "+y);
        System.out.println("Int: "+x);
}

答案 1 :(得分:1)

使用nextLine()方法读取所有值,然后将它们解析为相应的类型(Integer,Double等)。在此处查看原因:Integer.parseInt(scanner.nextLine()) vs scanner.nextInt()