我正在编写一种方法来检查数字是否包含给定范围内的数字。
我在两个给定索引之间得到了字符串形式的数字。我现在只需要检查它是否包含给定的数字。
假设数字是传递给方法时的整数
为什么digit.to_s
然后number.include?(digit)
无效?
由于
答案 0 :(得分:1)
你应该试试这个
number.include?(digit.to_s)
您没有将数字转换为字符串。
希望这能解决你的问题。
答案 1 :(得分:0)
您不需要对String进行任何转换。
这是一种没有的方法:
def digits_in_range(int, range)
int.digits & range.to_a
end
这使用set intersection(&
)来确定是否有任何数字在该范围内。它返回交集:
digits_in_range(12345, 4..9) #=> [4, 5]
如果您只想要一个布尔true
或false
:
digits_in_range(12345, 5..9).any? #=> true
digits_in_range(32645, 7..9).any? #=> false
答案 2 :(得分:0)
检查给定范围内的字符串编号'2343434'
(例如0..2)是否包含数字2
:
'2343434'[0..2].match?(/#{2}/) #=> true
假设您传入一个数字因此插值(或者您可以使用to_s
代替)。