我只是試圖找出是否有任何字符包括在數組中。所以我只是試圖包含範圍在包含功能,似乎不工作。我們可以在.include中包含範圍嗎? ruby
if @array.include?('a'..'z') then
puts "Doesnt have Permutation"
else
puts "Have permutation"
end
我只是試圖找出是否有任何字符包括在數組中。所以我只是試圖包含範圍在包含功能,似乎不工作。我們可以在.include中包含範圍嗎? ruby
if @array.include?('a'..'z') then
puts "Doesnt have Permutation"
else
puts "Have permutation"
end
你想要
@array.any? { |c| ('a'..'z').include?(c) }
,如果你忘了grep
。
注: '覆蓋?'比1.9.0中的'Range'更好' – roippi
謝謝,@roippi。我同意你說Range#cover?比Enumerable#include?要好,因爲後者會檢查範圍內的所有內容。然而,當'include?'的參數是Fixnum或單個字符(如這裏)時,將使用僅考慮端點的Range#include?。因此,這並不重要。有關這方面的更多信息,請參閱今天發佈的[此問題](http://stackoverflow.com/questions/21608935/what-is-the-difference-between-rangeinclude-and-rangecover)以及我在評論中提供的鏈接在這個問題上。 –
您可能需要爲此使用Enumerable#grep
。
這裏有一些關於使用#grep
的例子。
['w', '-', 12].grep('a'..'z') # => ["w"]
[ 4 , :a, '^'].grep('a'..'z') # => []
['w', '-', 'e'].grep('a'..'z') # => ["w", "e"]
這是你使用#grep
的修改後的代碼:
ary = ['w', '-', 12]
if ary.grep('a'..'z').empty?
puts "Doesnt have Permutation"
else
puts "Have permutation"
end
# >> Have permutation
謝謝兄弟..完美的作品:) – user3358898
後輸入數據和預期的結果 –