将字符的所有实例移动到字符串的末尾

时间:2017-07-12 10:16:44

标签: ruby

如果我喜欢这样的字符串:

"Hi! Hi! Hi!"

如何将感叹号移动到字符串的末尾。

预期产出:

"Hi Hi Hi!!!"

3 个答案:

答案 0 :(得分:1)

你可以用:

s = "Hi! Hi! Hi!"
s1 = s.delete("!")+s.scan("!").join
  • .delete(“!”)只返回没有“!”的字符串。
  • .scan(“!”)收集所有“!”来自一个字符串。
  • .join只是将数组的所有元素连接到字符串

答案 1 :(得分:0)

只是为了好玩,你可以按照索引对字符进行排序,除非字符是"Hi! Hi! Hi!".each_char.sort_by.with_index{ |c, i| c == '!' ? Float::INFINITY : i }.join #=> "Hi Hi Hi!!!"

1s

答案 2 :(得分:0)

另一种方式:

str.tr('!','') + '!'*str.count('!')
 #=> "Hi Hi Hi!!!"