我需要检查两个字符串是否有两个连续的字符.
我到目前为止写了这个:
def substring_test(str1, str2) return false if str1 == "" || str2 == "" str1.downcase.scan(/.{1,2}/).each do |pair| if str2.downcase.scan(/.{1,2}/).include? pair return true else return false end end end
但是如果我有:"Home"和"om"则它不起作用,因为它每两个字符截断字符串.我可以添加什么条件,以便它适用于这些情况?我可以添加一个条件,在第一个字符后每两个字符截断字符串,但感觉可能有一个更简单的方法?
你可以做点什么
def substring_test(str1, str2) str1.each_char.each_cons(2).any? { |pair| str2.include? (pair.join) } end
使用该any?
方法将在找到第一个匹配后立即退出循环.