2011-03-27 20 views
8

yapıyorum:Dizeleri ayırırken boş öğelerin kaldırılmasını nasıl önleyebilirim?

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

Sonucu: Sorun burada ne

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

? Beklediğim şeyi nasıl alabilirim.

+3

Sadece başvuru için, burada [Dize # bölünmüş] belgeleri var (http://rubydoc.info/stdlib/core/1.9.2/String#split-instance_method). –

+1

Bu harika bir soru. Dize # yi iyice okudum ve kafamı bununla çiziyordum. – Plasmarob

cevap

18

.split(pattern=$;, [limit]) için limit parametresi var. limit belirtilmezse, sondaki boş alanlar engellenir. Bu dizinin sonunda üç "" değerlerini dönecektir akılda olumsuz limit

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

ama ayı sağlamanız gerekir.

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

teşekkürler, yardımcı oldu. – user612308

+1

Gerçekten bu sorunun s.o.'da daha fazla dikkat gerektirdiğini düşünüyorum. Bulmak gerçekten zordu ve neredeyse aynı kesin q'yu sordum. – Plasmarob

+0

ruby ​​split @ http://gfxmonk.net/2011/09/04/ruby-s-split-function-makes-me-feel-special-in-a-bad-way.html hakkında daha fazla bilgi için bunu okuyun –

İlgili konular