2017-07-15 21 views
0

私はいくつかのコードを持っていますが、eachメソッドを使ってサイズを小さくしたいのですが、使い方がわかりません。ここに私の現在のコードです。`each`を使って複数の文字列にメソッドを追加する方法

e = "1000101" 
k = "1101011" 
a = "1100001" 
n = "1101110" 
s = "1110011" 
h = "1101000" 
print e.to_i(2).chr 
print k.to_i(2).chr 
print a.to_i(2).chr 
print n.to_i(2).chr 
print s.to_i(2).chr 
print h.to_i(2).chr 
+0

この質問は特に明確ではありません。もっと詳しく教えていただけますか? – finnrayment

+0

これを行う方法は、6つの異なる文字列変数ではなく、6つの変数を文字列の配列に格納し、配列全体をループし、その各エントリに対してto_i(2).chrを実行することです。 – bouteillebleu

答えて

2

このようなものは何ですか?

[e, k, a, n, s, h].each { |s| print s.to_i(2).chr } 
=> Ekansh 
1

eachほかに、あなたはreduceを経由して、新しい文字列を構築することができます。

[e, k, a, n, s, h].reduce('') { |memo, binary| memo << binary.to_i(2) } 
#=> "Ekansh" 

ブロックは最初''(空の文字列)であるmemo文字列にbinary.to_i(2)の結果を追加します。

String#<<はコードポイントとして整数入力を解釈するため、この場合はchrを呼び出す必要はありません。