你能在大于语句中使用"include?"吗?

  • 本文关键字:quot include 大于 语句 ruby
  • 更新时间 :
  • 英文 :


我试图找出一个字符串是否包含某个符号的两次以上出现。例如

is_valid_email("joey@g@mail.com")

如果有两个以上的"@"".",则应返回false。我可以使用这样的东西吗?

if string.include?("@") > 2
return false
else
return true
end

您可以使用String#count.此外,仅返回truefalseif语句没有多大意义;布尔条件本身已经是truefalse,所以你可以直接返回它。在这种情况下,由于if部分返回false,而else返回true,因此可以否定条件:

return !(string.count('@') >= 2)

或者使用相反的条件:

return string.count('@') < 2

但是,如果您要验证字符串看起来像电子邮件地址,则似乎要确保它只包含一个"@":

return string.count('@') == 1

只要在方法主体中进行此检查后没有其他代码,就可以关闭return关键字;方法会自动返回其最后一个表达式的值。

最新更新