私のコードは次のとおりです。
def LetterChanges(str)
str.each_char {|x| print x.next!}
end
LetterChanges("hello")
どちらが返されますか:
"ifmmp" => "hello"
のみを返すようにするにはどうすればよい"ifmmp"
ですか? どんな助けでも大歓迎です。
私のコードは次のとおりです。
def LetterChanges(str)
str.each_char {|x| print x.next!}
end
LetterChanges("hello")
どちらが返されますか:
"ifmmp" => "hello"
のみを返すようにするにはどうすればよい"ifmmp"
ですか? どんな助けでも大歓迎です。
"hello".gsub(/./, &:next)
# => "ifmmp"
def LetterChanges(str)
str.chars.map(&:next).join("")
end
LetterChanges("hello")
# => "ifmmp"
また
def LetterChanges(str)
str.size.times{|i| str[i] = str[i].next }
str
end
LetterChanges("hello")
# => "ifmmp"
puts str;
これでうまくいくはずです。
解決策は簡単です:
def LetterChanges(str)
puts str.chars.map(&:next).join
end
しかし、それをリファクタリングして解放することをお勧めしますputs
。この方法では、値の出力をハードコーディングせずに文字列を返すようにして、メソッドのユーザーがその値でやりたいことを何でもできるようにします。
def LetterChanges(str)
str.chars.map(&:next).join
end
そして、次のことができます:
puts LetterChanges("hello")
# => "ifmmp"