代码之家  ›  专栏  ›  技术社区  ›  user8949562

采用多行输入的Java

  •  0
  • user8949562  · 技术社区  · 7 年前

    如何获取多行输入,例如

    4 2 9
    1 4 2
    9 8 5
    

    将其放入一个数组中,该数组足够大,可以容纳每一行,并且没有空位置,或者一个arraylist。我已经尝试了很多方法来做到这一点,但找不到解决方案。 例如,如果用户复制并粘贴了上面的代码段作为输入,我希望一个数组或arraylist能够保存

    ["4 2 9", "1 4 2", "9 8 5"] 
    
    3 回复  |  直到 7 年前
        1
  •  0
  •   Sweeper    7 年前

    尝试呼叫 nextLine

    Scanner s = new Scanner(System.in);
    ArrayList<String> list = new ArrayList<>();
    while (s.hasNextLine()) {
        list.add(s.nextLine());
    }
    
    System.out.println(list);
    

    请注意,扫描仪将不断提示输入。要停止此操作,需要输入行尾字符。看到这个了吗 answer 如何做到这一点。

    输入/输出示例:

    4 2 9
    1 4 2
    9 8 5
    ^D
    [4 2 9, 1 4 2, 9 8 5]
    
        2
  •  0
  •   Amol Raje    7 年前

    尝试以下操作:

    List<String> list = new ArrayList<String>();
     while((str = in.readLine()) != null){
     list.add(str);
    }
    
        3
  •  0
  •   Parth Soni    7 年前

    您可以使用 Scanner 从控制台读取输入。

    尝试以下操作:

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        List<String> list = new ArrayList<String>();
    
        while(scan.hasNextLine()) {
            String str = scan.nextLine();
            System.out.println(str);
            list.add(str);
        }
    
        System.out.println(java.util.Arrays.toString(list.toArray()));
    
        scan.close();
    }