ruby - 如何为除第一个和最后一个之外的所有数组元素插入前缀?

标签 ruby string

如何为除第一个和最后一个元素之外的所有数组元素添加前缀?

是否有单行解决方案?或者比我的“更好”的解决方案?

result = ["svn up", "20111128025010", "20111128025022", "pass"]
for i in 1..result.length-2
  result[i]=" - "+result[i]
end

最佳答案

你可以这样做:

result[1 ... -1].each { |s| s[0, 0] = ' - ' }

注意是三个点,不是两个。这是有效的,因为 s[0,0] 就地修改了 s。如果您使用的是 1.9.3+,您也可以(并且可能应该)使用 prepend :

result[1 ... -1].each { |s| s.prepend(' - ') }

并且,作为 the Tin Man在评论中注明,您还可以使用更常见的双点范围运算符:

result[1 .. -2].each { |s| s[0, 0] = ' - ' }
result[1 .. -2].each { |s| s.prepend(' - ') }

您使用哪个范围运算符是一个偏好问题。

关于ruby - 如何为除第一个和最后一个之外的所有数组元素插入前缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8556942/

相关文章:

Java比较字符串

ruby - 使用 Ruby,我如何获取字符串并在单词之间插入竖线?

python - 如何使用字符串值作为对象名称

javascript - 如何从JavaScript中的字符串中提取值?

javascript - 当客户从另一台计算机(使用 Rails)添加预订时,如何让页面显示预订更新?

ruby - 使用 Ruby 1.9.3 和邮件 gem 进行字符编码

使用平行边更改字符串位置中的字符值,例如 yuv = vuy

ruby-on-rails - 如何使用restforce gem 在Rails 中设置Salesforce 凭据?

ruby-on-rails - 两个字符串数组之间的正则表达式匹配

ruby-on-rails - NameError:rake 任务中未初始化的常量 Class::Class