2017-12-14 12 views
0

Ruby 2.4を使用しています。文字とスペースのある文字列があります。たとえば、文字列の最初の文字をどのように繰り返すのですか?

"abc def" 

各単語の最初の文字を複製するように文字列を変更するにはどうすればよいですか?つまり、上記の文字列の中の「a」と「d」は、先頭の「a」と「d」であるため、上記は、

"aabc ddef" 

になります。単語では、スペースで区切られた文字列を意味します。

答えて

0

あなただけの各スペースで文字列を分割し、追加した後、最初の文字あなたが必要とする回数を掛け、または「初期」の単語連結することができます:私はちょうどGSUBを使うだろう

p "abc def".split.map { |word| "#{word[0] * 10}#{word}" }.join(' ') 
+1

GSUBが同じブロックで仕事ができるスニペット "ABC DEF" .gsub(/ \ W + /){...}'。 –

+0

もしあなたが 'gsub'を使用するならば、あなたは全てに入ります:-P –

+0

' word [0] * 10 + word'もまたマッピングに受け入れられます。 –

4

をそれらを見つけて倍増させる。あなたが試すことができ

"abc def".gsub(/\b\w/, '\0\0') 
=> "aabc ddef" 
0

は以下の `、

str = "abc def" 
index = 0 
new_str = "" 

str.split.each do | string | 
    string = string[0] + string 
    new_str = new_str + string + " " 
    index = index + 1 
end 

puts "New string #{new_str}" 
関連する問題