我给出的代码不打印最后一个输入值。代码有什么问题?

时间:2017-11-30 12:06:31

标签: java

import java.util.*;
import java.io.*;
public class Main{
    public static void main(String[] args)
    {
        Scanner s = new Scanner(System.in);
        System.out.println("Enter the name of the film");
        String str = s.nextLine();
        System.out.println("Enter the film budget");
        int a = s.nextInt();
        System.out.println("Enter the running time");
        double b = s.nextDouble();
        System.out.println("Enter the film production house");
        String str1 = s.nextLine();
        System.out.println("Film being screened : " + str);
        System.out.printf("Budget : %d crores", a);
        System.out.printf("\nRunning time : %.2f hours", b);
        System.out.printf("\nProduction : %s", str1);
    }
}

我正在获取字符串,整数,双精度和字符串的输入。但是,我无法获得"生产"我输入的价值。

1 个答案:

答案 0 :(得分:2)

System.out.println("Enter the film production house");
s.nextLine();
String str1 = s.nextLine();

这是因为s.nextDouble()不使用输入的最后一个换行符,因此为str1分配了一个“\ n”(新行)值