作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我想使用 ruby 代码检查一个字符串是否为回文。
我是 ruby 初学者,所以不太熟悉 ruby 中的字符串方法
最佳答案
如果您不熟悉 Ruby 的 String
方法,您应该看看 documentation , 这很好。 Mithun 的回答已经向您展示了基本原理,但由于您是 Ruby 新手,因此还有一些事情需要牢记:
*) 如果你有一个谓词方法,习惯上用一个尾随问号来命名它,例如回文?
。
*) bool 表达式的计算结果为 bool 值,因此您无需显式返回 true
或 false
。因此,一个简短的惯用版本将是
def palindrome?(str)
str == str.reverse
end
*) 由于 Ruby 的类是开放的,您可以将其添加到字符串类中:
class String
def palindrome?
self == self.reverse
end
end
*) 如果你不想猴子修补 String
,你可以直接在单个对象上定义方法(或使用模块和 Object#extend ):
foo = "racecar"
def foo.palindrome?
self == self.reverse
end
*) 你可能想让回文检查更复杂一点,例如当涉及大小写或空格时,您还可以检测回文句子、大写单词,如“Racecar”等。
pal = "Never a foot too far, even."
class String
def palindrome?
letters = self.downcase.scan(/\w/)
letters == letters.reverse
end
end
pal.palindrome? #=> true
关于ruby-on-rails - Ruby 检查字符串回文的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8462512/
我想开发一个 Skype 机器人,它将用户名作为输入,并根据用户输入以相反的字符大小写表示hello username。简而言之,如果用户输入他的名字 james,我的机器人会回复他为 Hello J
我是一名优秀的程序员,十分优秀!