2017-07-15 4 views
0

J'ai du code et je veux réduire sa taille en utilisant la méthode each mais je ne sais pas comment l'utiliser. Voici mon code actuel.Comment utiliser `each` pour ajouter une méthode dans plusieurs chaînes

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

Cette question n'est pas particulièrement claire. Pouvez-vous s'il vous plaît élaborer plus loin? – finnrayment

+0

Pour ce faire, vous pouvez stocker ces six variables dans un tableau de chaînes plutôt que dans six variables de chaîne différentes, puis faire une boucle sur le tableau et faire to_i (2) .chr sur chacune de ses entrées. – bouteillebleu

Répondre

2

Quelque chose comme ça?

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

A côté each, vous pouvez construire une nouvelle chaîne via reduce:

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

Le bloc de résultat ajoute le binary.to_i(2) à la chaîne memo qui est initialement '' (chaîne vide).

Notez que nous n'avons pas besoin d'appeler chr dans ce cas, car String#<< interprète l'entrée d'entier comme des points de code.