1

包含整数的输入文件将如下所示:

     5 2 3 5
     2 4 23 4 5 6 4

那么我将如何阅读第一行,用空格分隔并将这些数字添加到 Arraylist1。然后读取第二行,用空格分隔并将数字添加到 ArrayList2 等等。(所以 Arraylist1 将包含 [5,2,3,5] 等)

    FileInputStream fstream = new FileInputStream("file.txt");
    DataInputStream in = new DataInputStream(fstream);
    BufferedReader br = new BufferedReader(new InputStreamReader(in));
    String data;
    while ((data = br.readLine()) != null)   {
      //How can I do what I described above here?
    }
4

5 回答 5

4

在家工作?

你可以使用这个:

String[] tmp = data.split(" ");    //Split space
for(String s: tmp)
   myArrayList.add(s);

或者你看看 Scanner 类。

于 2012-04-17T13:44:21.277 回答
2

考虑使用一个StringTokenizer

一些帮助:字符串标记器

StringTokenizer st = new StringTokenizer(in, "=;"); 
while(st.hasMoreTokens()) { 
String key = st.nextToken(); 
String val = st.nextToken(); 
System.out.println(key + "\t" + val); 
} 
于 2012-04-17T13:45:45.607 回答
1

你可以从 中得到一个标准数组data.split("\\s+");,它会给你 int[]。您需要一些额外的东西才能将不同的行放入不同的列表中。

于 2012-04-17T13:43:38.330 回答
1

在我尝试了 HectorLector 提供的答案后,它在某些特定情况下不起作用。所以,这是我的:

String[] tmp = data.split("\\s+");    

这使用正则表达式

于 2015-07-08T23:34:48.180 回答
0

您需要的是类似ArrayList of ArrayList. 你可以使用data.split("\\s+");java中的函数来获取String数组中一行中的所有元素,然后将这些元素放入ArrayLists的ArrayList的内部ArrayList中。对于下一行,您可以移动到外部 ArrayList 的下一个元素,依此类推。

于 2012-04-17T14:52:29.263 回答