我是java的新手,我制作了我的第一个“程序” - 一个简单的输入/输出程序,它会输出你输入的内容。
import java.util.Scanner;
class Input{
public static void main(String args[]){
int zip;
int a;
double e = 2.718281828459045;
String name;
Scanner in = new Scanner(System.in);
System.out.println("Enter your zip code: ");
zip = in.nextInt();
System.out.println("Enter your name: ");
name = in.nextLine();
System.out.println("Enter an integer: ");
a = in.nextInt();
System.out.println(name+", "+"your zip code is "+zip+" and e*"+a+" is "+e*a);
}
}
所以当我运行它时,我输入邮政编码然后转到整数输入。我怀疑输入流后输入流吞噬了终结字符。任何快速修复或我只是java-stupid?
谢谢,SO!
答案 0 :(得分:1)
介于两者之间
System.out.println("Enter your zip code: ");
zip = in.nextInt();
System.out.println("Enter your name: ");
name = in.nextLine();
添加额外的in.nextLine()
。所以
System.out.println("Enter your zip code: ");
zip = in.nextInt();
in.nextLine(); // consume dangling eol characters
System.out.println("Enter your name: ");
name = in.nextLine();
方法Scanner#nextInt()
只读取生成int
所需的字节数,而不是后面的任何内容。如果在输入整数后按Enter键,则会有一个悬空回车符/换行符。你需要一个Scanner#nextLine()
来摆脱它。