مقایسه رشته ها

می‌توان رشته‌ها را به روش‌های مختلف با هم مقایسه کرد. به عنوان مثال با استفاده از عملگرهای > ،< ،<= ،== ،!= می‌توان تست کرد که آیا دو رشته با هم برابرند یا نه. این عملگرها مقدار اسکی کارکترهای رشته را با هم مقایسه می‌کند:

str1 = "Hello"
str2 = "Hello"
str3 = "Goodbye"

puts "str1 == str2 : #{str1 == str2}"
puts "str1 == str3 : #{str1 == str3}"
str1 == str2 : true
str1 == str3 : false

قبل از توضیح کد بالا به متد ord توجه کنید. این متد یک کاراکتر اسکی را گرفته و مقدار عددی آن را بر می گرداند. به کد زیر توجه کنید :

puts 'A'.ord
65

به جدول حروف اسکی توجه کنید:

حال اینکه در مثال ابتدای درس ذکر شد که مقدار عددی دو رشته با هم مقایسه می شود، منظور مقایسه اعداد مربوط به کاراکترهای، رشته است. به مثال ساده زیر توجه کنید :

str1 = "A"
str2 = "a"

if str1 > str2
    print("str1 is greater than str2")
elsif str1 < str2
    print("str2 is greater than str1")
else
    print("str1 is equal to str2")
end
str2 is greater than str1

در کد بالا، دلیل اینکه چرا str2 بزرگتر از str1 است با توجه به جدول اسکی کاملا واضح است، چون عدد مربوط به a برابر 97 و عدد مربوط به A برابر 65 است.