Java String: equalsIgnoreCase() MethodTwo strings are considered equal ignoring case if they are of the same length and corresponding characters in the two strings are equal ignoring case.
tf = strncmpi( s1,s2 , n ) compares up to n characters of s1 and s2 , ignoring any differences in letter case. The function returns 1 ( true ) if the two are identical and 0 ( false ) otherwise.
The strcasecmp() function compares, while ignoring differences in case, the string pointed to by string1 to the string pointed to by string2.
Approach No 1: Python String lower() Method This is the most popular approach to case-insensitive string comparisons in Python. The lower() method converts all the characters in a string to the lowercase, making it easier to compare two strings. The example code shows how the lower() method works.
You're looking for casecmp
. It returns 0
if two strings are equal, case-insensitively.
str1.casecmp(str2) == 0
"Apple".casecmp("APPLE") == 0
#=> true
Alternatively, you can convert both strings to lower case (str.downcase
) and compare for equality.
In Ruby 2.4.0 you have: casecmp?(other_str) → true, false, or nil
"abcdef".casecmp?("abcde") #=> false
"aBcDeF".casecmp?("abcdef") #=> true
"abcdef".casecmp?("abcdefg") #=> false
"abcdef".casecmp?("ABCDEF") #=> true
Here you have more info
In case you have to compare UTF-8 strings ignoring case:
>> 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
=> true
It works this way in Ruby 2.3.1 and earlier versions.
For smaller memory footprint you can cherry pick string/multibyte
:
require 'active_support'
require 'active_support/core_ext/string/multibyte'
Edit, Ruby 2.4.0:
>> str1.casecmp(str2) == 0
=> false
So casecmp
doesn't work in 2.4.0; However in 2.4.0 one can compare UTF-8 strings manually without active_support
gem:
>> str1.downcase == str2.downcase
=> true
For ruby 2.4 working fine casecmp? for utf-8 strings (mb_chars not needed):
2.4.1 :062 > 'строка1'.casecmp?('СтроКа1')
=> true
but casecmp isn't workin for utf-8:
2.4.1 :062 > 'строка1'.casecmp('СтроКА1')
=> 1
2.4.1 :063 > 'string1'.casecmp('StrInG1')
=> 0
casecmp and zero? are ruby inbuilt methods. casecmp returns 0 if two strings are equal, case-insensitively and zero? checks for zero value (==0)
str1.casecmp(str2).zero?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With