これが私の例の文字列です:
「おい、これはテストだ」
したがって、関数が「htiat」を返すようにしたいと思います。
私は次のような方法を見つけました:
x = "hey_this_is_a_test"
y = x.split("_")
z = ""
y.each do |w|
z += w[0]
end
puts z
しかし、それを行うためのより短い方法があるかどうか疑問に思っており、私のものはいくつかのユースケースに合格しないかもしれないと感じています.
これが私の例の文字列です:
「おい、これはテストだ」
したがって、関数が「htiat」を返すようにしたいと思います。
私は次のような方法を見つけました:
x = "hey_this_is_a_test"
y = x.split("_")
z = ""
y.each do |w|
z += w[0]
end
puts z
しかし、それを行うためのより短い方法があるかどうか疑問に思っており、私のものはいくつかのユースケースに合格しないかもしれないと感じています.
これは正規表現で行うことができます。
"hey_this_is_a_test".scan(/^(.)|_(.)/).join
# => "htiat"
さらに、それはクールに見えます。
x = "hey_this_is_a_test"
x.split("_").map{|s| s[0]}.join # => "htiat"
"hey_this_is_a_test".gsub(/(?<=[a-z])./, "")
"hey_this_is_a_test".prepend("_").scan(/(?<=_)./).join