【问题标题】:Line by line input via java console通过java控制台逐行输入
【发布时间】:2012-08-13 13:56:55
【问题描述】:

请帮我通过java控制台逐行输入。现在我只能以一行的形式提供输入。如何逐行给出多个输入??

【问题讨论】:

  • 使用循环?多次阅读?

标签: java command-line input console


【解决方案1】:
      InputStreamReader converter = new InputStreamReader(System.in);
      BufferedReader in = new BufferedReader(converter);

      String CurLine = ""; // Line read from standard in

      while (!(CurLine.equals("quit"))){
          CurLine = in.readLine();

          if (!(CurLine.equals("quit"))){
              System.out.println("You typed: " + CurLine);
          }
      }

【讨论】:

    【解决方案2】:

    您需要使用 Scanner 并循环请求多次。

    例如

    Scanner stdin = new Scanner(new BufferedInputStream(System.in));
    while (stdin.hasNext()) {
    //Get input and do your logic.
    }
    

    【讨论】:

      【解决方案3】:

      我不确定我是否理解你的问题,但是......

       final List<String> inputs = new ArrayList<String>();
       final Scanner in = new Scanner(System.in);
       for (int i = 0; i < 5; i++) {
            System.out.print("> ");
            inputs.add(in.next());
       }
       System.out.println(inputs);
      

      【讨论】:

        【解决方案4】:

        使用 new 控制台类:

        Console console = System.console();
        if (console != null) {
            Scanner scanner = new Scanner(console.reader());
            while (scanner.hasNextLine()) {
                String line = scanner.nextLine();
                // Do something with your line
            }
        }
        

        ^Z (control-Z) 和ENTER 结束输入。

        它有一个警告,那就是 console 在 IDE 中可以为空。从命令行尝试一下,应该没问题:

        java path.to.my.MainClass
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-01-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多