检查字符串是否是多个项

时间:2016-06-30 11:53:53

标签: ruby

我有一个字符串

x = "student"

如何检查" x"匹配我所拥有的名称列表中的任何项目。这些名字是一个固定的名单。

names = ["teacher", 
         "parent", 
         "son", 
         "daughter", 
         "friend", 
         "classmate", 
         "principal", 
         "vice-principal", 
         "student", 
         "graduate"]

我尝试将名称设置为列表并使用任何名称?检查列表,但似乎只适用于数组,我有一个字符串。

我正在使用Ruby 2.2.1如果项目在列表中,我只需要它返回true或false

5 个答案:

答案 0 :(得分:3)

names.include?(your_string)

如果字符串在数组中,它将返回true

答案 1 :(得分:1)

你可以使用include吗?数组上的方法如下:

if names.include? x do
  # x is an element in the list
end

答案 2 :(得分:1)

您还可以使用grep查找字符串是否存在于数组中

names = ["teacher", 
         "parent", 
         "son", 
         "daughter", 
         "friend", 
         "classmate", 
         "principal", 
         "vice-principal", 
         "student", 
         "graduate"]

names.grep(/^daughter$/)

答案 3 :(得分:0)

如果您的names数组包含多个x个实例,该怎么办?然后假设您不在布尔值之后,可以使用Enumerable#count我们传递代码块中所需的条件。在您的示例中,我们将:

names.count{ |i| i == x } #=> 1 

另一个例子:

x = "student"
names = ["student", "cleaner", "student"] 

names.count{ |i| i == x } #=> 2 

答案 4 :(得分:0)

以下是另一种方法:

if not (names & [x]).empty?
  puts "'#{x}' is present in names"
end