2010-09-22 10 views
25

क्या कोई ऐसी विधि है जो मुझे रुबी में कई अन्य लोगों के साथ एक स्ट्रिंग की तुलना करने दे? मैं वास्तव में कुछ इस तरह करना चाहते हैं:एकाधिक अन्य तारों के खिलाफ एक स्ट्रिंग की तुलना कैसे करें

myString.eql?(["string1","string2","string3"]) 

उत्तर

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

जो समानता तुलना नहीं है – Filippos

+0

@Filippos: आपका क्या मतलब है? – mipadi

+0

मेरा मतलब है कि अगर मेरा स्ट्रिंग "एस" है तो आप सचमुच सत्य पाएंगे। इसके बजाय ओपी ने समानता से पूछा। यह केवल तभी वापस आना चाहिए जब myString "string1", "string2" या "string3" में से एक है। @ मिपाडी – Filippos

14

आप Array#include? का उपयोग देखने के लिए अगर सरणी स्ट्रिंग शामिल हो सकते हैं:

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

वह शब्द विभाजक इतना साफ है। – iono

10

मैं अपने आप को इस एक बहुत चाहने लगता है, इसलिए मैं एक स्ट्रिंग विधि इसे और अधिक मुहावरे करने के लिए सक्षम होने के लिए इससे जोड़ा गया:

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

फिर

+०१२३५१६४१०६१
myString.among?("string1","string2","string3") 
संबंधित मुद्दे