如何检查变量是数字还是字符串?

时间:2011-12-23 12:56:14

标签: ruby

如何在Ruby中检查变量是数字还是字符串?

7 个答案:

答案 0 :(得分:77)

有几种方法:

>> 1.class #=> Fixnum
>> "foo".class #=> String
>> 1.is_a? Numeric #=> true
>> "foo".is_a? String #=> true

答案 1 :(得分:28)

class Object
  def is_number?
    to_f.to_s == to_s || to_i.to_s == to_s
  end
end

> 15.is_number?
=> true
> 15.0.is_number?
=> true
> '15'.is_number?
=> true
> '15.0'.is_number?
=> true
> 'String'.is_number?
=> false

答案 2 :(得分:12)

var.is_a? String

var.is_a? Numeric

答案 3 :(得分:5)

finishing_moves gem包含String#numeric?方法来完成此任务。这个方法与installero的答案相同,只是打包了。

"1.2".numeric?
#=> true

"1.2e34".numeric?
#=> true

"1.2.3".numeric?
#=> false

"a".numeric?
#=> false

答案 4 :(得分:2)

打印它的类,它将显示哪种类型的变量(例如字符串或数字)。

e.g:

puts varName.class

答案 5 :(得分:0)

class Object
  def numeric?
    Float(self) != nil rescue false
  end
end

答案 6 :(得分:-3)

if chr.to_i != 0
  puts "It is number,  yep"
end