[英]Checking if number is an integer in ruby using gets.chomp.to_i
我打算檢查給定的輸入是否為整數。 gets.chomp
以字符串gets.chomp
獲取輸入,然后使用to_i
將其轉換為整數。 如果我輸入abcd
並使用class
或is_a(Integer)
,則始終表示它是整數。
x = gets.chomp.to_i
if x.is_a?(Integer)
puts "It's an integer"
else
puts "It's a string"
end
如何檢查輸入是整數還是字符串?
由於您使用.to_i
將輸入轉換為整數, x.is_a?(Integer)
即使您的字符串中不包含任何數字, x.is_a?(Integer)
始終為true
。 有關.to_i
行為的更多信息, .to_i
答案 。
使用Integer()
而不是.to_i
轉換輸入。
Integer()
無法將您的輸入轉換為整數時,它將引發異常,因此您可以執行以下操作:
input = gets.chomp
x = Integer(input) rescue false
if x
puts "It's an integer"
else
puts "It's a string"
end
您可以使用正則表達式:
boolean = gets.match?(/\A\d+\n\z/)
另一種方法可能是:
x = gets.chomp
x === x.to_i ? "It's an integer" : "It'a a string"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.