这是一个简单的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);
}
答案 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()