2

これが私の例の文字列です:

「おい、これはテストだ」

したがって、関数が「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 に答える