16

如果我用空值定义一个字符串

string = "a,b,,c,d,e,f,,"

然后

string.split(',')
  => ["a", "b", "", "c", "d", "e", "f"] 

“b”和“c”之间的空字符串占了,但最后的两个已经丢失了。如何拆分字符串并在返回的数组中保留那些尾随的空字符串?

4

1 回答 1

20

你需要说:

string.split(',',-1)

以避免省略尾随空格。

per为什么 Ruby String#split 不将连续的尾随分隔符视为单独的实体?

第二个参数是“limit”参数,记录在http://ruby-doc.org/core-2.0.0/String.html#method-i-split如下:

如果省略“limit”参数,则禁止尾随空字段。如果 limit 是一个正数,最多将返回该数量的字段(如果 limit 为 1,则整个字符串作为数组中的唯一条目返回)。如果为负数,则返回的字段数没有限制,并且不抑制尾随的空字段。

于 2013-11-11T22:51:39.830 回答