我想反转字符串中的所有单词,这样
- 单词的顺序不应更改
- 单词中的空格数应保持不变
例如:-当我的字符串是"How Are You"时,它应该返回"woH erA uoY"
我尝试了一些类似于的东西
def reverse_string(str)
arr = str.split(" ")
new_arr = arr.collect{|a| a.reverse}
new_arr.join(" ")
end
但它不适用于单词之间可能有多个空格的字符串。
s = "How Are You"
s.gsub(/w+/) { |match| match.reverse }
这是最短的,可能也是最快的。字符串是regex'ed,所有连续的单词字符都按顺序反转
s = "How Are You"
s.gsub(/w+/,&:reverse)
=>woH erA uoY
这很有效。在中使用正则表达式拆分任何单词边界字符
def reverse_string str
arr = str.split /b/
new_arr = arr.collect {|a| a.reverse}
new_arr.join
end