2013-02-03 42 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

如果我正确读取它,则需要该行在|之前和之后至少有一个空格字符。 –