如何刷新java中的endline字符?

时间:2013-10-16 03:23:24

标签: java inputstream

我是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!

1 个答案:

答案 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()来摆脱它。