Ruby:检查字符串是否可以转换为整数

Ruby:检查字符串是否可以转换为整数,ruby,Ruby,可能重复: "1" “一个” 第一个字符串是一个数字,我只需对_I说,就可以得到一个整数。 第二个字符串也是一个数字,但我不能直接调用_I来获取所需的数字 如何检查是否可以成功地将using转换为_I?有一种Integer方法,与转换为_I不同,如果无法转换,则会引发异常: >> Integer "1" => 1 >> Integer "one" ArgumentError: invalid value for Integer(): "one" 我想你可以将其用

可能重复:

"1" “一个” 第一个字符串是一个数字,我只需对_I说,就可以得到一个整数。
第二个字符串也是一个数字,但我不能直接调用_I来获取所需的数字


如何检查是否可以成功地将using转换为_I?

有一种
Integer
方法,与
转换为_I
不同,如果无法转换,则会引发异常:

>> Integer "1"
=> 1
>> Integer "one"
ArgumentError: invalid value for Integer(): "one"
我想你可以将其用于在线救援:

Integer(foo) rescue nil
如果您的字符串可以转换,您将得到整数,否则为
nil
(或任何您想在
解救
后放置的内容)


虽然引发异常似乎有些过分,但在Ruby中,
Integer
方法是我所知道的最全面的检查(例如,“09”不会转换,因为前导的零表示为八进制,9表示无效数字)。用正则表达式覆盖所有这些情况将是一场噩梦。

从Ruby 2.6.0开始,使用
整数(“一”,异常:false)
可以避免
rescue nil
。请看我的回答:
Integer(foo) rescue nil