2010-09-22 17 views

cevap

48
["string1","string2","string3"].include? myString 
+0

bu eşitlik karşılaştırması değil – Filippos

+0

@Filippos: Ne demek istiyorsun? – mipadi

+0

Yani, eğer myString "s" ise, o zaman siz de doğru olursunuz. Bunun yerine OP eşitlik istedi. Yalnızca, myString "string1", "string2" veya "string3" öğelerinden biri ise true olmalıdır. @mipadi – Filippos

14

Sen dizi dize içerip içermediğini Array#include? kullanabilirsiniz:

%w(string1 string2 string3).include?(myString) 
+0

Bu kelime ayırıcı öyle, çok temiz. – iono

10

Kendimi çok bu isteyen bulmak, bu yüzden string yöntemi daha deyimsel bunu yapabilmek için eklenen: Sonra

class String 
    def among?(*array) 
    array.flatten.include?(self) 
    end 
end 

myString.among?("string1","string2","string3") 
İlgili konular