从java中的空格分隔的文件中读取整数

时间:2012-04-17 13:41:47

标签: java

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

     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?
    }

5 个答案:

答案 0 :(得分:4)

作业?

您可以使用:

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

或者你看一下Scanner课程。

答案 1 :(得分:2)

考虑使用StringTokenizer

一些帮助:String tokenizer

StringTokenizer st = new StringTokenizer(in, "=;"); 
while(st.hasMoreTokens()) { 
String key = st.nextToken(); 
String val = st.nextToken(); 
System.out.println(key + "\t" + val); 
} 

答案 2 :(得分:1)

您可以从data.split("\\s+");中获取一个标准数组,它将为您提供int []。你需要额外的东西把不同的行放到不同的列表中。

答案 3 :(得分:1)

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

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

这使用正则表达式

答案 4 :(得分:0)

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