私はこのコードを持っている:私は、のように大文字追加する場合未定義のメソッドlengthとnext! nilのために:NilClass
def encrypt(x)
index = 0
alphabet = "abcdefghijklmnopqrstuvwxyz"
while index < x.length
letter = x[index]
if letter == ' '
print ' '
index += 1
elsif letter == "z"
print "a"
index += 1
else
letter = alphabet[letter].next!
index += 1
print letter
end
end
end
def decrypt(x)
number = 0
alphabet = "abcdefghijklmnopqrstuvwxyz"
while number < x.length
green = x[number]
if green == ' '
print ' '
number += 1
else
red = alphabet.index(green)
red = red.to_i
blue = red - 1
yellow = alphabet[blue]
print yellow
number += 1
end
end
end
:
encrypt("Dhd d hd h")
をそれが返されます。
undefined method `next!' for nil:NilClass
(repl):13:in `encrypt'
(repl):39:in `initialize'
または私がしようとした場合を両方の方法を使用してください:
encrypt(decrypt("Dhddhdh"))
は、それは私がそれを引数にスペースを有することに起因すると思った、そのためif
/else
、ない幸運を追加
undefined method `length' for nil:NilClass
(repl):4:in `encrypt'
(repl):39:in `initialize'
返します。誰かが私を正しい方向に向けることができますか?両方のケースで
あなたはちょうどあなたがについて考えてもらうために、暗号化するときにケースを削除するか、目標はすべての可能な文字を網羅するものではないので、ケースが除去されたこれらの演習では、通常、(それを維持するために期待しています文字列を扱う)?また、色などの任意の名前ではなく、暗号化ルーチンで変数にわかりやすい名前を使用することを検討してください。暗号化ルーチンのような名前を使用することは一般的には良い方法であり、それは何をすることになっています。 –