0
这是Ruby中的Pig Latin translate practice。如何在Ruby中进行字符串切片
为什么我从这两个版本的代码中获得不同的结果?换句话说,为什么word = word[i..-1]
在第二个代码块中不起作用?
def translate(input)
output_array = input.split(" ").each do |word|
i=0
while !['a', 'e', 'i', 'o', 'u'].include?(word[i])
i += 1
end
unless i == 0
word << word[0..i-1]
word[0..i-1] = ''
end
word << "ay"
end
return output_array.join(" ")
end
puts translate('apple')
puts translate('banana')
puts translate('trash')
puts translate('eat pie')
,其输出:
appleay
ananabay
ashtray
eatay iepay
和:
def translate(input)
output_array = input.split(" ").each do |word|
i=0
while !['a', 'e', 'i', 'o', 'u'].include?(word[i])
i += 1
end
unless i == 0
word << word[0..i-1]
word = word[i..-1]
end
word << "ay"
end
return output_array.join(" ")
end
puts translate('apple')
puts translate('banana')
puts translate('trash')
puts translate('eat pie')
打印出:
appleay
bananab
trashtr
eatay piep