我希望以不区分大小写的方式在 Ruby 中测试 2 个字符串是否相等。
在一些语言中,比如 Fantom,你可以使用下面的代码:
string1.equalsIgnoreCase(string2)
在 Ruby 中,什么是惯用的方法?
你可以使用casecmp
"Test".casecmp("teST")
=> 0
"Test".casecmp("teST2")
=> -1
因此,如果要测试相等性,您可以执行以下操作:
if str.casecmp(str2).zero?
# strings are equal
end
String#match
的用途。与那些相比,我的方法是一个鲜明的等价物 :-) - Aleksei Matiushkins1.op(s2)
。无论如何,没关系。 :) - Sergio Tulentsevcasecmp
方法清晰得多。 - SDJMcHattiea.downcase == b.downcase
a.upcase == b.upcase
String#match
方法:s = "Test"
s.match(/teST/i) # => #<MatchData "Test">
s.match(/teST2/i) # => nil
nil
和 false
以外的所有对象都具有真值。因此,您也可以使用这个技巧来进行条件测试。请记住保留html标签。
.zero?
的添加,以前我从未遇到过这个。 - Steve EynonFixnum#nonzero?
和Fixnum#zero?
是避免在if条件中使用0的惯用方式,因为在这种情况下,0值被认为是true。 - SirDarius