How to compare strings in Ruby
Overview
In Ruby, strings are compared to see which one is larger or smaller, if they are equal to one another, or not comparable at all.
The casecmp() method is used to compare two strings while ignoring the case and returning 1, -1, or 0.
If a string, a, is larger than a string, b, then 1 is returned. If the latter is larger, then -1 is returned. If they are both the same, then 0 is returned. If they are not comparable, i.e., if one of them is not a string, nil or nothing is returned.
Syntax
str1.casecmp(str2)
Parameters
str1: This is the first of the two strings that we want to compare.
str2: This is the second of the two strings that we want to compare.
Return value
The value returned is an integer value.
Code example
In the example below, we will create some strings and compare them, using the casecmp() method.
# create some stringsstr1 = "Hello"str2 = "heLLO"str3 = "edpresso"str4 = "EDPRESSO"# compare stringsa = str1.casecmp(str2)b = str3.casecmp(str4)c = str1.casecmp(str4)# print out returned valuesputs aputs bputs c
In the code given above, str1 and str2 are the same, and so are str3 and str4.
str1 is greater than str4 because "H", the first letter of str1, is greater than "E", which is the first letter of str4. Hence, 1 is returned.