我的代码是:
def LetterChanges(str)
str.each_char {|x| print x.next!}
end
LetterChanges("hello")
返回:
"ifmmp" => "hello"
如何让它只返回"ifmmp"
?任何帮助将不胜感激。
答案 0 :(得分:5)
"hello".gsub(/./, &:next)
# => "ifmmp"
答案 1 :(得分: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"
答案 2 :(得分:0)
puts str;
这应该为你做。
答案 3 :(得分: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"