可能的重复:
使用 Ruby 测试字符串是否基本上是引号中的整数? https://stackoverflow.com/questions/1235863/test-if-a-string-is-basically-an-integer-in-quotes-using-ruby
"1"
"one"
第一个字符串是一个数字,我可以直接说 to_i 来获取一个整数。
第二个字符串也是一个数字,但我无法直接调用 to_i 来获取所需的数字。
如何检查使用 to_i 是否可以成功转换?
有一个Integer
方法不同于to_i
如果无法转换将引发异常:
>> Integer("1")
=> 1
>> Integer("one")
ArgumentError: invalid value for Integer(): "one"
如果你不想从 Ruby 2.6 开始引发异常,你可以这样做:
Integer("one", exception: false)
如果您的字符串可以转换,您将得到整数,否则nil
.
The Integer
方法是我所知道的 Ruby 中最全面的检查(例如“09”不会转换,因为前导零使其成为八进制,而 9 是无效数字)。用正则表达式涵盖所有这些情况将是一场噩梦。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)