回答:
あなたが探していcasecmpます。02つの文字列が等しい場合、大文字と小文字を区別せずに返されます。
str1.casecmp(str2) == 0
"Apple".casecmp("APPLE") == 0
#=> trueまたは、両方の文字列を小文字(str.downcase)に変換して、等しいかどうかを比較することもできます。
casecmp:大文字と小文字を区別する比較メソッドの愚かな名前?!
                    == 0とzero?
                    "Apple".casecmp("APPLE").zero?次のとおりです。しかし、個人的には、以下のアンドレスの回答が好きです.casecmp?
                    ではRubyの2.4.0あなたが持っています:casecmp?(other_str) → true, false, or nil
"abcdef".casecmp?("abcde")     #=> false
"aBcDeF".casecmp?("abcdef")    #=> true
"abcdef".casecmp?("abcdefg")   #=> false
"abcdef".casecmp?("ABCDEF")    #=> truecasecmpジャンクでJavaを使用しているように感じます。
                    "aBcDeF".downcase == "abcdef"代わりに使用することを正直にお勧めします。casecmpRuby 2.4以降では、はるかに読みやすくなり、使用によるパフォーマンスの向上が排除されています。
                    falseとの違いは何でしょうかnil
                    大文字小文字を区別せずにUTF-8文字列を比較する必要がある場合:
>> str1 = "Мария"
=> "Мария"
>> str2 = "мария"
=> "мария"
>> str1.casecmp(str2) == 0
=> false
>> require 'active_support/all'
=> true
>> str1.mb_chars.downcase.to_s.casecmp(str2.mb_chars.downcase.to_s) == 0
=> trueRuby 2.3.1以前のバージョンでは、このように動作します。
メモリフットプリントを小さくするには、チェリーピックを使用できますstring/multibyte。
require 'active_support'
require 'active_support/core_ext/string/multibyte'Ruby 2.4.0を編集:
>> str1.casecmp(str2) == 0
=> falseしたがってcasecmp、2.4.0 では機能しません。ただし、2.4.0では、active_supportgem なしでUTF-8文字列を手動で比較できます。
>> str1.downcase == str2.downcase
=> truecasecmpとゼロ?Rubyの組み込みメソッドです。2つの文字列が等しく、大文字と小文字を区別せず、ゼロの場合、casecmpは0を返しますか?ゼロ値(== 0)をチェックします
str1.casecmp(str2).zero?0、特により複雑な条件でネストされている場合は、literalと比較するよりも明確であるため、私はそれが好きです。
                    Ruby 2.4がうまく動作する場合、casecmp?utf-8文字列の場合(mb_charsは不要):
2.4.1 :062 > 'строка1'.casecmp?('СтроКа1')
 => trueしかし、casecmpはutf-8では機能しません。
2.4.1 :062 > 'строка1'.casecmp('СтроКА1')
 => 1
2.4.1 :063 > 'string1'.casecmp('StrInG1')
 => 0