System.out.println不适用于字符串

时间:2015-09-20 22:23:36

标签: java string

我试图通过Hackerrank学习Java,而我目前正在进行的挑战是采用int,double和string,然后以相反的顺序将它们打印在不同的行上,但我还没有。能够得到要打印的字符串。

import java.util.Scanner;

public class Solution {

    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);
         }
    }

输入是:

42
3.1415
Welcome to Hackerrank Java tutorials!

输出是:

String:
Double: 3.1415
Int: 42

我根本不了解Java,但从我在网上看过的代码中,我无法说明为什么这是错误的。

2 个答案:

答案 0 :(得分:2)

将代码的第一部分更改为:

        Scanner sc = new Scanner(System.in);
        int x = sc.nextInt();
        double y = sc.nextDouble();
        sc.nextLine();  // Discard rest of current line
        String s = sc.nextLine();

java.util.Scanner将输入分成数字或行的方式有点奇怪。

答案 1 :(得分:-1)

sc.nextLine();应改为sc.next();