确定一个字符串数组是否包含ruby中的某个子字符串

Dav*_*e G 30 ruby

我有一个简单的红宝石问题.我有一个字符串数组.我想确定该数组是否包含任何字符串的子字符串.举个例子

a = ['cat','dog','elephant']
a.to_s.include?('ele')
Run Code Online (Sandbox Code Playgroud)

这是最好的方法吗?

谢谢.

Sha*_*ell 64

a.any? 应该做的工作.

> a = ['cat','dog','elephant']
=> ["cat", "dog", "elephant"]
> a.any? { |s| s.include?('ele') }
=> true
> a.any? { |s| s.include?('nope') }
=> false
Run Code Online (Sandbox Code Playgroud)

  • 我以这个“haystack.select { |str|”结束 str.include?('wat') || str.include?('pre') }` (2认同)

小智 9

这是另一种方法:如果您想获取受影响的字符串元素。

>  a = ['cat','dog','elephant']
=> ["cat", "dog", "elephant"]
> a.grep(/ele/)
=> ["elephant"]
Run Code Online (Sandbox Code Playgroud)

如果你只想要布尔值。

> a.grep(/ele/).empty?
=> false # it return false due to value is present
Run Code Online (Sandbox Code Playgroud)

希望这是有帮助的。