我想以不区分大小写的方式在Ruby中测试2个字符串是否相等。
在Fantom等语言中,您只需编写:
string1.equalsIgnoreCase(string2)
在Ruby中执行此操作的 惯用 方式是什么?
答案 0 :(得分:15)
您可以使用casecmp
"Test".casecmp("teST")
=> 0
"Test".casecmp("teST2")
=> -1
因此,为了测试平等,你可以这样做:
if str.casecmp(str2).zero?
# strings are equal
end
答案 1 :(得分:4)
答案 2 :(得分:1)
您可以将字符串转换为小写,然后比较
a.downcase == b.downcase
或者,如果您愿意,可以大写
a.upcase == b.upcase
答案 3 :(得分:1)
您可以使用String#match
方法:
s = "Test"
s.match(/teST/i) # => #<MatchData "Test">
s.match(/teST2/i) # => nil
请记住,在Ruby中,除nil
和false
外,所有对象都具有真值。所以你也可以使用这个技巧来执行条件测试。