我是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愚蠢?
谢谢,太好了!
最佳答案
在两者之间
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()
摆脱它。