在java

时间:2016-09-24 08:33:19

标签: java input java.util.scanner

我的输入将是

12
4.0
has to be concatenated with this input

我的预期输出是

16
8.0
RandomString has to be concatenated with this input

尝试执行此操作的代码如下:

        int i = 4;
        double d = 4.0;
        String s = "RandomString";

        Scanner scan = new Scanner(System.in);
        int j = scan.nextInt(); 
        double e = scan.nextDouble();
        String str = scan.nextLine();
        int resInt = i + j; double resDouble = d + e; String resString = s +" "+ str;
        System.out.println(resInt);
        System.out.println(resDouble);
        System.out.println(resString);

        scan.close();

这表现不同。一旦我输入两行输入,它就会给我输出。不等我输入的第三行。所以现在我的输出是

12
4.0
16
8.0
RandomString

1 个答案:

答案 0 :(得分:1)

原始数据类型(如int,double)不会消耗Enter键/行尾。这就是为什么在键入整数后输入键入的原因被作为来自缓冲区的值用于你的nextLine()。

当您想要将同一个扫描仪对象与nextInt()和nextLine()一起使用时,它不能正常工作。

有两个解决方案,解决方案是创建另一个扫描程序来读取字符串或在尝试读取下面给出的随机字符串之前提供额外的nextLine()。

@media only screen and (max-width: 767px) {
    #Top_bar .logo {
        text-align: left;
    }

    #Top_bar .top_bar_left {
        float: left;
        width: 80% !important;
        margin-top: 10px;
        background: none !important;
    }

    .header-classic #Top_bar .top_bar_right {
        top: 15px;
        float: right;
    }

}