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