簡體   English   中英

從Java中用空格分隔的文件中讀取整數

[英]Reading integers from a file separated by space in 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?
    }

家庭作業?

您可以使用此:

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

或者,您可以看一下Scanner類。

考慮使用StringTokenizer

一些幫助: 字符串標記器

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

您可以從data.split("\\\\s+");獲取標准數組data.split("\\\\s+"); ,這將為您提供int []。 您將需要一些額外的東西來將不同的行放入不同的列表中。

在嘗試了HectorLector提供的答案后,它在某些特定情況下不起作用。 所以,這是我的:

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

這使用正則表達式

您需要的是ArrayList of ArrayList類的東西。 您可以使用data.split("\\\\s+"); Java中的函數,以獲取String數組中一行中的所有元素,然后將這些元素放入ArrayLists的ArrayList的內部ArrayList中。 對於下一行,您可以移動到外部ArrayList的下一個元素,依此類推。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM