检查:
"test.one.two".split(".") # => ["test", "one", "two"]
对,太好了。正是我们想要的。
"test..two".split(".") # => ["test", "", "two"]
我用空字符串替换了
one
,所以这是有意义的"test".split(".") # => ["test"]
这就是我所期望的,这里没有问题。
".test".split(".") # => ["", "test"]
是的,我的字符串有一个
.
所以我得到了两个部分。"test.".split(".") # => ["test"]
什么?我的字符串中有一个
.
,应该被分成两部分。我没有要求去掉空字符串;它没有在测试2或4中去掉空字符串。我本以为
["test", ""]
"".split(".") # => []
什么?这应该与测试3几乎完全一样,并返回
[""]
。但现在我不能在result[0]
上执行任何字符串方法为什么出现在边上的拆分或空字符串不一致?
最佳答案
文档很好地解释了这一点:http://ruby-doc.org/core-2.2.0/String.html#method-i-split
如果省略limit参数,则不显示后面的空字段如果极限为正数,则最多为
将返回字段(如果限制为1,则返回整个字符串
作为数组中的唯一项)如果为负,则
返回的字段数,后面的空字段不是
压制。
所以,这就是你所期望的:
"test.".split(".", -1)
=> ["test", ""]
其余的在文件里。