0

私のコードは次のとおりです。

def LetterChanges(str)
  str.each_char {|x| print x.next!}
end

LetterChanges("hello")

どちらが返されますか:

 "ifmmp" => "hello"

のみを返すようにするにはどうすればよい"ifmmp"ですか? どんな助けでも大歓迎です。

4

4 に答える 4

5
"hello".gsub(/./, &:next)
# => "ifmmp"
于 2013-08-02T20:18:29.980 に答える
2
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"
于 2013-08-02T20:14:38.533 に答える
0
puts str;

これでうまくいくはずです。

于 2013-08-02T20:14:11.787 に答える
0

解決策は簡単です:

def LetterChanges(str)
    puts str.chars.map(&:next).join
end

しかし、それをリファクタリングして解放することをお勧めしますputs。この方法では、値の出力をハードコーディングせずに文字列を返すようにして、メソッドのユーザーがその値でやりたいことを何でもできるようにします。

def LetterChanges(str)
    str.chars.map(&:next).join
end

そして、次のことができます:

puts LetterChanges("hello")
# => "ifmmp"
于 2013-08-02T20:20:39.197 に答える