我试图将用户输入存储到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/