2014-10-01 112 views
1

我試圖從文件中讀取數據並將其存儲在變量中。問題是文件中的每一行都是整數和字符串的混合體,它們之間的空格/製表符數量不均勻。我知道線中前4個元素是什麼,但是有一串長度不同的數字(但這些數字以0結尾)。我嘗試了一些不同的方法,但我似乎無法做到。首先,我嘗試逐一讀取一行,在看到空格時將其拆分,然後將不包含空格的值存儲到新數組中。這不起作用,因爲它沒有「分開」。數組中的一個索引可以由一個字符串,多個空格和一個int組成。我已經嘗試過其他變體,但我似乎無法想到一個好方法。有沒有人可以給我一些關於如何閱讀這種文件的指針?從java中讀取文件時遇到問題(困難格式)

這裏是文件中的一個行的一個示例: 7地毯8 4 5 9 1 2 0

例分裂的:

while (in.hasNextLine()) { 
    line = in.nextLine(); 
    String[] splitLine = line.split(" "); 
} 

我採用分體式(「\ t」的)也試圖

+0

你可以發佈你用來分割它的代碼嗎? – 2014-10-01 09:21:12

+0

無代碼無回答!!! – Imran 2014-10-01 09:23:33

+0

我編輯並添加了我使用的分割。我嘗試了很多東西,發佈代碼有點困難。這是我的主要嘗試,至少,但是當我打印它的分割不能正常工作,因爲我已經寫在我的代碼 – user16655 2014-10-01 09:26:21

回答

3

嘗試用

line.split("\\s+"); 

此替換

line = line.split(" "); 

將分裂基於空白而不是單一的空間中的線。這意味着它將佔多個空間,標籤等。

+0

非常感謝你:)這工作作爲一種魅力:) – user16655 2014-10-01 10:04:22

1

要正確分割,當你到一個空間,你必須使用

line = line.split("\\s+"); 

這是因爲「」被認爲是Java中的一個特殊字符。
line = line.split("\\s");將被使用,如果它是單個空間,但要做很多空間做第一個。