我是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()摆脱它。

10-05 23:17