Ruby: checking if a string can be converted to an integer

ruby

Solution

There's an `Integer` method that unlike `to_i` will raise an exception if it can't convert:

>> Integer("1")
=> 1
>> Integer("one")
ArgumentError: invalid value for Integer(): "one"

If you don't want to raise an exception since Ruby 2.6 you can do this:

Integer("one", exception: false)

If your string can be converted you'll get the integer, otherwise `nil`.

The `Integer` method is the most comprehensive check I know of in Ruby (e.g. "09" won't convert because the leading zero makes it octal and 9 is an invalid digit). Covering all these cases with regular expressions is going to be a nightmare.

Problem

Possible Duplicate: Test if a string is basically an integer in quotes using Ruby? ``` "1" "one" ``` The first string is a number, and I can just say to_i to get an integer. The second string is also a number, but I can't directly call to_i to get the desired number. How do I check whether I can successfully convert using to_i or not?

Original source

Related problems