将字符串替换为3的倍数

时间:2015-08-09 00:22:59

标签: ruby string

我打印整数1-100。但是我想用字符串"fizz"替换3的倍数的整数。

我目前的代码是

if num % 3 == 0
  num.sub(/num/, "fizz");
end

它引发了"undefined method 'sub'"。我尝试gsub时也一样。我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

sub用于字符串,而不是整数。

试试这个:

if num % 3 == 0
    "#{num}".sub(/#{num}/, "fizz");
end

答案 1 :(得分:0)

你应该只能puts "fizz"。所以:

if num % 3 == 0
  puts "fizz"
end

或更完整的例子:

(1..100).each do |num|
  if num % 3 == 0
    puts "Fizz"
  end
end

sub& gsub仅适用于字符串,不适用于整数,因此您的错误。