2011-03-27 76 views
8

我做:如何避免拆分字符串時刪除空的項目?

"b::::c:::".split(':') 

結果:

["b", "", "", "", "c", "", ""] # expect 
["b", "", "", "", "c"] # actual 

有什麼問題嗎?我怎麼能得到我的預期。

+3

僅供參考,以下是[String#split](http://rubydoc.info/stdlib/core/1.9.2/String#split-instance_method)的文檔。 – 2011-03-27 23:59:23

+1

這是一個很好的問題。我讀了String#徹底分裂,並用這個抓我的頭。 – Plasmarob 2013-11-04 17:45:09

回答

18

有一個limit參數.split(pattern=$;, [limit])。如果省略limit,則會禁止結尾空字段。您需要提供一個負limit

"b::::c:::".split(':', -1) 

,但要記住,這將在陣列結束返回三個""值。

result: ["b", "", "", "", "c", "", "", ""] 
+0

謝謝,它有幫助。 – user612308 2011-03-27 23:28:03

+1

我真的認爲這個問題需要更多關注s.o.這真的很難找到,我幾乎問完全相同的問題。 – Plasmarob 2013-11-04 17:32:38

+0

閱讀本文以瞭解更多關於ruby split的信息@ http://gfxmonk.net/2011/09/04/ruby-s-split-function-makes-me-feel-special-in-a-bad-way.html – 2014-03-11 11:33:26