如何将"flay1"
转换为["f","l","a","y","1"]
之类的数组,并且它应该返回true,因为最后一个值包含1
答案 0 :(得分:1)
input.match(/\d$/)
正则表达式匹配,如果字符串以数字结尾,如果不是,则返回nil
。使用原始值而不是必要将它们转换为true
或false
是ruby中的一种习惯用法。 nil
和false
是唯一的假值。
if input.match(/\d$/)
# do something...
end
如果你真的需要布尔结果,你可以加倍否定:
!!input.match(/\d$/)
答案 1 :(得分:0)
我不确定你为什么要这样做。但是您可以将字符串拆分为各个部分,并尝试将最后一个元素转换为整数。但这不是一个非常易读的代码,而且这只是为了表明你可以在需要的时候完成工作。
AND
示例:
WHERE
DVCPORTmc1_SENSOR_Program_name LIKE 'mesh-Cu_%'
OR
DVCPORTmc1_SENSOR_Program_name LIKE 'mesh-Water'
如果您愿意接受整数作为真值,则可以使用双重否定。这样就可以返回一个整数,可以将其视为true或false。
def last_char_is_int?(input)
!!Integer(input.chars.last)
rescue ArgumentError
false
end
如果元素无法转换为整数,则会发生参数错误。