分裂后我真的需要空间来获得三个元素吗?或者有人可以解释为什么会如此? (注意:ruby中的代码,不确定它是如何用不同的语言)
test1="2011112512215| | "
test2="2011112512215||"
puts test1.split("|").length # =3
puts test2.split("|").length # =1
答案 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