Rubyで配列を改行させたいです。
ruby
1num = "0001001010100110001101100011011011110110000100101010011000110010"
を charsメソッドを使って
ruby
1["0","0","0","1"・・・]
のように格納しました。
これを
ruby
1["0","0","0","1","0","0","1","0", 2"1","0","0","1","0","0","1","0"]
のように
横に8文字並んだら改行させたいのですが
うまくいきません。
失敗例
ruby
1num = "0001001010100110001101100011011011110110000100101010011000110010" 2puts num.length# =>64 3ary = num.charsa#aryに配列格納 4puts ary 5pc_1 = [] 6count = 1 7ary.each do |moji|#配列格納2回目 8 9 if count == 8 #8文字目で改行挿入 10 pc_1.push("moji" + "\n") 11 count = 0 12 else 13 pc_1.push(moji) 14 end 15 count +=1 16end 17p pc_1 18
実行結果(改行させませんでした・・・)
cmd
1["0", "0", "0", "1", "0", "0", "1", "moji\n", "1", "0", "1", "0", "0", "1", "1", "moji\n", "0", "0", "1", "1", "0", "1", "1", "moji\n", "0", "0", "1", "1", "0", "1", "1", "moji\n", "1", "1", "1", "1", "0", "1", "1", "moji\n", "0", "0", "0", "1", "0", "0", "1", "moji\n", "1", "0", "1", "0", "0", "1", "1", "moji\n", "0", "0", "1", "1", "0", "0", "1", "moji\n"]
上記のコードでは
0,1,1,0,1,0,1,0,1,0,0、
を一回配列に格納してからもう一度格納し直しています。
2回目の配列格納の時に改行させようとしています
このようにやりたいのですが
他にいい方法はないでしょうか?
ruby
1ary = num.charsa#aryに配列格納
わざわざ2回配列に格納しているのは
配列に格納しないと
ruby
1ary.each do |moji|#配列格納2回目 2 3 if count == 8 #8文字目で改行挿入 4 pc_1.push("moji" + "\n") 5 count = 0 6 else 7 pc_1.push(moji) 8 end 9 count +=1 10end
eachを使えないからです・・・。
分からないので参考になるリンクまたは説明をお願いします。
回答3件
あなたの回答
tips
プレビュー