2

这是我的示例字符串:

“嘿_this_is_a_test”

所以我希望函数返回“htiat”。

我找到了这样的方法:

x = "hey_this_is_a_test"
y = x.split("_")
z = ""
y.each do |w|
  z += w[0]
end

puts z

但我想知道是否有更短的方法来解决它,我觉得我的可能无法通过一些用例。

4

4 回答 4

3

你可以用正则表达式来做到这一点。

"hey_this_is_a_test".scan(/^(.)|_(.)/).join
# => "htiat"

另外它看起来很酷。

于 2013-08-21T14:37:08.740 回答
3
x = "hey_this_is_a_test"
x.split("_").map{|s| s[0]}.join # => "htiat"
于 2013-08-21T14:37:53.003 回答
2
"hey_this_is_a_test".gsub(/(?<=[a-z])./, "")
于 2013-08-21T14:54:34.680 回答
0
"hey_this_is_a_test".prepend("_").scan(/(?<=_)./).join
于 2013-08-21T14:42:34.207 回答