2,4,6番目を同じ文字で書き換えるのに、
lang
1s = '123456' 2s[1] = s[3] = s[5] = 'X' 3# => "1X3X5X"
のように書きました。
ですが、これだと書き換えたい桁数が増えたときに困ります。
正規表現でも良いのですが、
配列の場合でもできるようにしたいので、
lang
11.step(s.length() - 1, 2) do |i| 2 s[i] = 'X' 3end
のようにすれば行けますが、
できれば関数型っぽいやり方で書き換えたいです。
その場合はsplit
してjoin
しないとダメでしたっけ?
lang
1s.split("").each_with_index do |o, i| 2 if i.odd? then s[i] = 'X' end 3end 4# => ["1", "X", "3", "X", "5", "X"] 5# 後でjoinする
他に何か良い方法はありますでしょうか。
Rubyのバージョンは特に問いませんが、
比較的新しいバージョンでの機能をお使いの場合は、
それも併記していただけるとうれしいです。
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/15 15:00