我想用 fixnum(即 空格
的数量)替换字符串中的每个 空格
。
举个例子:
s = "hello, how are you ?"
omg(s) # => "hello,3how10are2you1?"
你有没有找到一种方法(如果可能的话很性感)来更新这样的字符串?
谢谢 Rubists :)
最佳答案
gsub
可以为“替换为”参数提供一个 block ,该 block 的结果被插入到找到匹配项的位置。 block 的参数是匹配的字符串。因此,为了实现这一点,我们捕获尽可能多的空白(/\s+/
),并在每次找到一个部分时将其输入 block ,返回该字符串的长度,它被放回空白处最初被发现。
代码:
s = "hello, how are you ?"
res = s.gsub(/\s+/) { |m| m.length }
puts res
# => hello,3how10are2you1?
关于ruby - 字符串:用数字替换空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6319064/