2013-02-03 111 views
1

因此,我從.txt文件取出一行並將其轉換爲字符串。我想通過拆分串起來|,但我也有之前和之後的空間,與代碼搞亂,這裏是我到目前爲止有:用空格分割字符串

File file = new File(fileLocation); 
Scanner sc = new Scanner(file); 
String line; 
String[] words; 
while(sc.hasNext()){ 
    line = sc.next(); 
    words = line.split("\\|"); 
    this.german.add(words[0]); 
    this.english.add(words[1]); 
} 

一個例子線會是這樣的: in blue | in blau

我還想保留空格。

.txt文件將是:

在腐|紅色

在布勞

|藍色

在GRUN

|綠色

在蓋爾布

|黃河

它會添加|的左側的所有項目到德國名單和英國名單右側的所有名單。

啊,算出來,sc.next()是下一個字符串,不是下一行,我用sc.nextLine()取代了它,一切正常,謝謝。

+1

你能提供一些輸入數據和預期的輸出? – Pshemo

+0

現在只需更新 –

回答

3

呼叫

line.replaceAll(" ", ""); 

事先;這將擺脫全部的空格。如果你只是想開頭和結尾,從分割字符串刪除空格,使用

words[i].trim() 

代替。

+0

如果我想保留空格怎麼辦? –

+0

如果你不想刪除空格,你的方法沒問題。對於前/後空格,請參閱我的答案(我已更新它)。 –

2

使用以下模式:

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

+0

如果我正確讀取它,則需要該行在|之前和之後至少有一個空格字符。 –