ruby字符串分裂,终端字符串为空

时间:2013-11-11 22:46:25

标签: ruby

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

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

然后

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

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

1 个答案:

答案 0 :(得分:17)

你需要说:

string.split(',',-1)

以避免遗漏尾随空白。

Why does Ruby String#split not treat consecutive trailing delimiters as separate entities?

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

  

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