0

我有一个字符串数组,每个字符串中至少有一个空格。对于数组中的每个元素,我想将字符串的最后一部分放在开头。因此,例如,如果我的数组中有这个

["RUBY RAILS"]

我希望结果是

["RAILS RUBY"]

我试过这个

data.map! {|str| "#{str.split(/\s+/).last} #{str.split(/\s+/).first}" }

但唯一的问题是,如果字符串包含两个以上的单词,则上述内容不起作用。如果一个字符串有两个以上的单词,比如

["ONE TWO THREE"]

我希望结果是

["THREE ONE TWO"]

但我上面的功能并没有做到这一点。我怎样才能改变我的功能,使它能够做到这一点?

4

1 回答 1

2

您正在寻找Array#rotate

["ONE TWO THREE"]
  .map(&:split)               #=> [["ONE", "TWO", "THREE"]]
  .map { |ar| ar.rotate(-1) } #=> [["THREE", "ONE", "TWO"]]
  .map { |ar| ar.join(' ') }     #=> ["THREE ONE TWO"]
于 2017-02-12T20:36:55.523 回答