Ruby方法在字符串数组中查找字符串

时间:2012-06-28 18:59:21

标签: ruby

我有一个字符串数组,如下所示:

[noindex,nofollow]

或     [“index”,“follow”,“all”]

我称之为“tags_array”。我有一个看起来像这样的方法:

return true if self.tags_array.to_s.include? "index" and !self.tags_array.to_s.include? "noindex"

但我认为运行此代码的方法比采用整个数组并将其转换为字符串更明智。

问题是,有时信息作为单个元素数组出现,有时则作为字符串数组出现。

有关最聪明的方法的任何建议吗?

1 个答案:

答案 0 :(得分:4)

您不必将Array转换为String,因为Array包含include?方法。

tags_array.include?("index") #=> returns true or false

但是,就像你说的那样,有时信息是作为单个String的数组出现的。如果该Array的单个String元素包含始终用空格分隔的单词,那么您可以使用split方法将String转换为数组。

tags_array[0].split.include?("index") if tags_array.size == 1 

或者如果单词总是用逗号分隔:

tags_array[0].split(",").include?("index") if tags_array.size == 1 

编辑:

或者,如果您不知道它们将被分开,但您知道这些单词只会包含字母:

tags_array[0].split(/[^a-zA-Z]/).include?("index") if tags_array.size == 1