我对如何读取整数的文本文件并将它们作为整数放入不同的ArrayLists感到困惑。它们用空格分隔并填充3行。
例如,文本文件将具有:
1 2 3 4
5 4 3 2
3 7 8 5
我想把每一行放到一个ArrayList中,所以
list [0] = [1,2,3,4]
list [1] = [5,4,3,2]
list [2] = [3,7,8,5]
我目前的代码只能获得一行,我不知道如何处理它,只需要一些指导。谢谢。
我的代码:
ArrayList<Integer> s1 = new ArrayList<Integer>();
ArrayList<Integer> s2 = new ArrayList<Integer>();
ArrayList<Integer> s3 = new ArrayList<Integer>();
String line = null;
while ((line = bufferedReader.readLine()) != null) {
s1.add(new Integer(line));
s2.add(new Integer(line));
s3.add(new Integer(line));
}
结果应该是一个List,其中包含整数列表中的每一行
答案 0 :(得分:1)
首先,您需要能够读取一行并将结果插入List
String line = "1 2 3 4";
String[] array = line.split(" "); //Split the String one each Space and have the result into an Array
ArrayList<Integer> list = new ArrayList<>();
for(String value : array){ //Read the array, String by String
list.add(Integer.valueOf(value)); //Parse and insert into the list
}
此处,list
将包含一行。
然后,您需要将此结果插入主列表。
ArrayList<ArrayList<Integer>> fileList = new ArrayList<>();
while ((line = bufferedReader.readLine()) != null) {
// split the line
fileList.add(list);
}
完整代码如下:
ArrayList<ArrayList<Integer>> fileList = new ArrayList<>();
while ((line = bufferedReader.readLine()) != null) {
String[] array = line.split(" ");
ArrayList<Integer> list = new ArrayList<>();
for(String value : array){
list.add(Integer.valueOf(value));
}
fileList.add(list);
}
这是一个没有在这里写的测试代码,但这应该是正确的。
我已逐步写下这个答案来解释当时如何处理一个问题;)
答案 1 :(得分:0)
ArrayList<ArrayList<Integer>> s1 = new ArrayList<ArrayList<Integer>>();
String line = "";
while ((line = bufferedReader.readLine()) != null) {
String[] numbers = line.split(" ");
ArrayList<Integer> ints = new ArrayList<Integer>();
for (String str : numbers) {
ints.add(Integer.parseInt(str));
}
s1.add(ints);
}
这会给你一个充满了整数类型的arraylists的arraylist,用每行的值填充
答案 2 :(得分:-1)
此代码读入每个单词并将其放入ArrayList:
Scanner s = new Scanner(new File("filepath"));
ArrayList<String> list = new ArrayList<String>();
while (s.hasNext()){
//As we need to add multiple tokens seperately
list.addAll((s.next()).split(" "));
}
s.close();
我们也可能需要解析它,同时按照建议将String转换为Integer。