“1” “一”
第一个字符串是一个数字,我可以说 to_i 来获得一个整数。
第二个字符串也是一个数字,但我不能直接调用 to_i 来获取所需的数字。
如何检查是否可以使用 to_i 成功转换?
“1” “一”
第一个字符串是一个数字,我可以说 to_i 来获得一个整数。
第二个字符串也是一个数字,但我不能直接调用 to_i 来获取所需的数字。
如何检查是否可以使用 to_i 成功转换?
有一种Integer
方法,to_i
如果它不能转换,就会引发异常:
>> Integer "1"
=> 1
>> Integer "one"
ArgumentError: invalid value for Integer(): "one"
我想您可以将其与内联救援一起使用:
Integer(foo) rescue nil
如果您的字符串可以转换,您将获得整数,否则nil
(或您想放在后面的任何其他内容rescue
)。
虽然引发异常可能看起来有点矫枉过正,但该Integer
方法是我所知道的 Ruby 中最全面的检查(例如,“09”不会转换,因为前导零使其成为八进制,而 9 是无效数字)。用正则表达式覆盖所有这些情况将是一场噩梦。