2012-07-11 105 views
-1

可能重複:
Java split() method strips empty strings at the end?如何使用分隔符分割字符串'|'

我們就像讀一本文件的內容和數據上傳到數據庫的要求。文件內容將被分隔符'|'分隔像這樣

4000|name|state|city|zip||country|||address|| 

對於在「|」之間沒有數據的特定列,我也可以有空值。例如'||'郵編和國家之間。我的問題是string.split(「//」,'|')將空值和返回數組作爲一個元素考慮空值。但是尾隨的'||'沒有考慮地址之後。在上面的例子中,當我使用string.split(「//」,'|')時,我得到了一個數組大小爲11的字符串數組元素,但是我只得到了10.最後一個null沒有被回收。任何人都可以幫助解決方案?

+1

來自@ wrschneider99的鏈接:'String [] de = data.split(「|」,-1);' – 2012-07-11 20:22:35

回答

4

只需使用普通split(String, int)方法String類中:

String line = "4000|name|state|city|zip||country|||address||"; 
String data[] = line.split("\\|", -1); // escaped, because of regular expressions 

減號一個是慣例,表明你想要的字符串將被拆分。

+0

謝謝..它確實有效。 – user1470589 2012-07-13 00:34:00

+0

@ user1470589:由於此答案對您有所幫助,因此您可以通過單擊此答案的分數下的勾號來接受它。 – 2012-07-15 11:13:31

0

是使用分裂是顯而易見的,但你可以考慮這個選項太:

爲什麼不直接使用string.indexOf(「|」,indexToStartFrom)?有點麻煩,但可以肯定地工作,而不必考慮太多正則表達式。


或者有圖書館OpenCsv http://opencsv.sourceforge.net/,這是商業友好。 Apache 2.0許可證

+0

無需使用indexOf,因爲split已經內置了所需的功能。您只需閱讀文檔或在本網站上搜索相同的問題(請參閱評論)即可。 – jahroy 2012-07-11 20:36:30