我正在尝试编写一个函数,将字符串显示为交替的大小写字母。
例如:
str= "My name is ballouta!"
==> My NaMe Is BaLlOuTa!
我的代码是:
def alt_case
flag = 0
str = ''
self.scan(/./) do |b|
if flag == 0
b.upcase ;
flag = 1
str = str + b
else
b.downcase
flag = 0
str = str + b
end #end if
end #end do
str
end #end method
此代码将字符串返回为小写ONLY。
3条答案
按热度按时间6bc51xsx1#
x8goxv8g2#
您使用的是
upcase
和downcase
,这两个函数都返回修改后的值(您没有保存和使用该值)。就地替代
upcase!
和downcase!
可以帮助您解决这个问题。shstlldc3#
编辑:我看到@bjhaid在我发表这篇文章之前的一条评论中提出了和我差不多的解决方案。
既然您的问题已经得到了解答,那么让我建议一种方法来更改您的代码,使其更像Ruby:
以下是具体操作:
当计算
b
时,考虑w => "name"
的情况:我将此方法添加到String类只是因为您已经这样做了,但通常我不建议这样做;
alt_case(string)
就可以了。