【问题标题】:BufferedReader readlineBufferedReader 读取行
【发布时间】:2013-10-30 08:42:27
【问题描述】:

我正在尝试使用 bufferedReader 进行练习,所以每次我在控制台中按 enter 时,它都会给我正确的答案,但不是在一次 enter 命中后,我多次按 enter 以获得结果。

我的 BufferedReader 代码:

InputStreamReader irs = new InputStreamReader(System.in);
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String choose = br.readLine();

我的 BufferedReader 的 if 语句:

if ((choose = br.readLine()).equals("1)) {
            System.out.println("You chose: " + option1);
        } else if ((choose = br.readLine()).equals("2")) {
            System.out.println("You chose: " + option2);
        } else if ((choose = br.readLine()).equals("3")) {
            System.out.println("You chose: " + option3);
        }

来自控制台的结果:

your choice: 

1

1

You chose: Dog

我应该多次输入选项以获得结果。 关于如何纠正的任何建议? 谢谢!

【问题讨论】:

  • 您应该只从读者那里阅读一次。每次调用 readLine() 都会推进流并可能返回 null

标签: java bufferedreader readline


【解决方案1】:
choose = br.readLine();
if(choose.equals("1"))
//....
else if(choose.equals("2"))
//....
//and so on

【讨论】:

    【解决方案2】:

    每次调用readLine 时,您都在读取另一行输入。您已经在choose 中有输入;不用每次有病都打电话readLine

    随便用

    if ((choose.equals("1")) {
    

    对于其他条件也是如此。

    【讨论】:

      猜你喜欢
      • 2012-05-09
      • 1970-01-01
      • 2020-03-01
      • 1970-01-01
      • 2015-05-12
      • 2019-01-09
      • 2013-03-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多