什么';ruby中string.split(";,";,-1)和string.split(";,";,-4)之间的区别是什么?

什么';ruby中string.split(";,";,-1)和string.split(";,";,-4)之间的区别是什么?,ruby,Ruby,字符串类的split方法状态的 [如果limit为]负值,则返回的字段数量没有限制,并且尾部的空字段不会被抑制 据我所知,以下各项之间没有区别: string="1,,2,3,,,4,,5,,6" string.split(",", -1) string.split(",", -4) string.split(",", -1000000) 它们都返回相同的值:[“1”、“2”、“3”、“4”、“5”、“6”] 只是想知道为什么可以用这种方式分配不同的负极限 另外,如果我确实想删除后面的空值(

字符串类的
split
方法状态的

[如果limit为]负值,则返回的字段数量没有限制,并且尾部的空字段不会被抑制

据我所知,以下各项之间没有区别:

string="1,,2,3,,,4,,5,,6"

string.split(",", -1)
string.split(",", -4)
string.split(",", -1000000)
它们都返回相同的值:
[“1”、“2”、“3”、“4”、“5”、“6”]

只是想知道为什么可以用这种方式分配不同的负极限


另外,如果我确实想删除后面的空值(如空格),会发生什么?我知道我可以做
string.strip.split(“,”,-1)
但是有没有一种不用
strip
方法的方法呢

Ruby通常有多种方法来做同样的事情,甚至包括语法。只需在代码中约定使用
-1


你是在问如何没有限制,但做零场抑制吗?根据文档,您可以省略limit参数。

Ruby通常有多种方法来做同样的事情,甚至包括语法。只需在代码中约定使用
-1


你是在问如何没有限制,但做零场抑制吗?根据文档,您可以省略限制参数。

通过您的测试和引用的文档,在
string.split(“,”,-1)
string.split(“,”,-4)
之间似乎没有区别。说明书上说没有差别,你在测试中也没有发现差别。万岁

但是请注意,
string.strip.split(..)
不会删除后面的空值:

irb(main):003:0> string="1,,2,3,,,4,,5,,6,,,"
=> "1,,2,3,,,4,,5,,6,,,"
irb(main):004:0> string.split(",", -1)
=> ["1", "", "2", "3", "", "", "4", "", "5", "", "6", "", "", ""]
irb(main):005:0> string.strip.split(",", -1)
=> ["1", "", "2", "3", "", "", "4", "", "5", "", "6", "", "", ""]

您必须选择另一种机制来去除空值。

通过测试和引用的文档,在
string.split(“,”,-1)
string.split(“,”,-4)
之间似乎没有区别。说明书上说没有差别,你在测试中也没有发现差别。万岁

但是请注意,
string.strip.split(..)
不会删除后面的空值:

irb(main):003:0> string="1,,2,3,,,4,,5,,6,,,"
=> "1,,2,3,,,4,,5,,6,,,"
irb(main):004:0> string.split(",", -1)
=> ["1", "", "2", "3", "", "", "4", "", "5", "", "6", "", "", ""]
irb(main):005:0> string.strip.split(",", -1)
=> ["1", "", "2", "3", "", "", "4", "", "5", "", "6", "", "", ""]

您必须选择另一种机制来去除空值。

谢谢,我把空值和空格搞混了。我现在明白了,干杯汉克斯,我被空和空白弄糊涂了。我现在明白了,干杯汉克斯,我没有想过取消限制。谢谢,我没有想过取消限制。