拆分文本需要空间给我一个空项目?

时间:2011-12-19 04:07:05

标签: ruby split

分裂后我真的需要空间来获得三个元素吗?或者有人可以解释为什么会如此? (注意:ruby中的代码,不确定它是如何用不同的语言)

test1="2011112512215| | "
test2="2011112512215||"

puts test1.split("|").length    # =3
puts test2.split("|").length    # =1

2 个答案:

答案 0 :(得分:5)

不,String#split采用第二个参数,您可以在其中指定将发生的分割数限制。

传递负值将使该函数不会删除长度为0的尾随元素。

puts "2011112512215||".split ("|", -1)        # = ["2011112512215","",""]
puts "2011112512215||".split ("|", -1).length # = 3

答案 1 :(得分:1)

对长度参数使用负数,以便不抑制尾随nils(根据拆分手册):

        text="2011112512215||"
        puts text.split("|", -1).length