可能重复:
使用Ruby测试字符串是否基本上是引号中的整数?
"1" "one"
第一个字符串是一个数字,我可以说to_i得到一个整数.
第二个字符串也是一个数字,但我不能直接调用to_i来获得所需的数字.
如何检查是否可以使用to_i成功转换?
Mic*_*ohl 23
有一种Integer方法不同,to_i如果它无法转换会引发异常:
>> Integer "1"
=> 1
>> Integer "one"
ArgumentError: invalid value for Integer(): "one"
我想你可以使用内联救援:
Integer(foo) rescue nil
如果你的字符串可以被转换,你将得到整数,否则nil(或者你想要放在其他任何地方rescue).
虽然引发异常可能看起来有点过分,但这种Integer方法是我在Ruby中所知道的最全面的检查(例如"09"将不会转换,因为前导零使其成为八进制而9是无效数字).用正则表达式覆盖所有这些案例将是一场噩梦.
| 归档时间: | 
 | 
| 查看次数: | 8205 次 | 
| 最近记录: |