0

我想反转字符串中的所有单词,使得

  1. 单词的顺序不应该改变
  2. 单词中的空格数应保持不变
例如:-当我的字符串是“你好吗”时,它应该返回“woH erA uoY”

我尝试如下

def reverse_string(str)
  arr = str.split(" ")
  new_arr = arr.collect{|a| a.reverse}
  new_arr.join(" ")
end

但它不适用于单词之间可能有多个空格的字符串。

4

3 回答 3

5
s = "How     Are  You"
s.gsub(/\w+/) { |match| match.reverse }
于 2012-07-21T07:03:16.540 回答
2

这是最短的,也可能是最快的。字符串是正则表达式,所有连续的单词字符按顺序颠倒

s = "How     Are  You"
s.gsub(/\w+/,&:reverse) 

=>woH     erA  uoY
于 2012-07-21T10:42:39.780 回答
0

这行得通。使用正则表达式拆分 任何单词边界字符

def reverse_string str
  arr = str.split /\b/
  new_arr = arr.collect {|a| a.reverse}
  new_arr.join
end
于 2012-07-21T07:00:43.463 回答