在String中的每个特定字符出现后获取第一个字母

时间:2013-08-21 14:31:11

标签: ruby

这是我的示例字符串:

“hey_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 个答案:

答案 0 :(得分:3)

您可以使用正则表达式执行此操作。

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

另外它看起来很酷。

答案 1 :(得分:3)

x = "hey_this_is_a_test"
x.split("_").map{|s| s[0]}.join # => "htiat"

答案 2 :(得分:2)

"hey_this_is_a_test".gsub(/(?<=[a-z])./, "")

答案 3 :(得分:0)

"hey_this_is_a_test".prepend("_").scan(/(?<=_)./).join