Java ArrayList之ArrayList Scanner UserInput

标签 java arraylist

我试图将用户输入存储到ArrayList 的ArrayList 中。

ArrayList<ArrayList<Integer>> a = new ArrayList<ArrayList<Integer>>();

例如,将其存储为[[1,2,3],[4,5],[6,1,8]]
下面是我的代码,

    Scanner input = new Scanner(System.in);
    System.out.println("Enter a set of numbers:");
    String line = input.nextLine();
    String[] numbers = line.split(" +");

    ArrayList<ArrayList<Integer>> a = new ArrayList<ArrayList<Integer>>();
    ArrayList<Integer> a1 = new ArrayList<Integer>();

    for(int i=0; i<numbers.length; i++) {
        a1.add(new Integer(numbers[i]));

    }
    a.add(a1);

但是当我将其输入到终端时,它变成了 [[1,2,3,4,5,6,1,8]]
预先感谢您!

最佳答案

从上面的评论我很清楚你想做什么。

您在终端上输入了1 2 3 4 5 6 1 8。在您的程序中,您在 - 上使用了 split,因此我提供了一些指导来解决您的问题。

首先,将您的输入拆分为 - 以分隔数组

String[] numbersArray = line.split("-"); 
//e.g. input 1 2 3 + 4 5 6 + 1 8
//here you will get numbersArray as [1 2 3,4 5 6,1 8]
ArrayList<ArrayList<Integer>> a = new ArrayList<ArrayList<Integer>>();

现在,要分隔内部数组的各个元素,请使用 for 循环

for(int i=0; i<numbersArray.length; i++) {

    String[] numbers= numbersArray[i].split(" "); //split on " "
    //here you will get [1,2,3] for first iteration and 2nd [4,5,6], last [1,8]

    ArrayList<Integer> a1 = new ArrayList<Integer>();
    for(int j=0; j<numbers.length; j++) {
        a1.add(new Integer(numbers[j]));
        //here adding inner array list elements

    }
    //add to main array list 
    a.add(a1);
}

关于Java ArrayList之ArrayList Scanner UserInput,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26333027/

相关文章:

java - 如何使用 Quarkus Panache 仅选择某些字段?

Java 识别标记

java - 将字符串添加到 ArrayList<ArrayList<String[]>>

java - 有没有一种简单的方法可以将数组转换为arrayList?

java - 为什么我的recpie 显示此错误?

java - 覆盖继承中的字段类型以进行 GSON 序列化

java - FileUpload 问题 - 多部分文件为空值

Java按钮反转

java - '指定的 child 已经有一个 parent 。您必须首先在子级的父级上调用removeView() .' and not sure where I' m 错误

java - Arraylist - 使用 switch 语句添加字符串