to_i,我得到 0 返回。任何人都可以解释这里发生了什么以及为什么我总是看到 0-6ren">
gpt4 book ai didi

ruby - 字符串到整数的显式转换

转载 作者:数据小太阳 更新时间:2023-10-29 08:44:32 24 4
gpt4 key购买 nike

我有以下代码:

gets().to_i

当我输入 "A""a""world" 或任何内容并使用 将其转换为整数时>to_i,我得到 0 返回。任何人都可以解释这里发生了什么以及为什么我总是看到 0 吗?

最佳答案

这是因为转换为整数的字符串返回 0,如果字符串以数字开头则返回一个整数。

➜  ~  irb
2.1.5 :001 > "whatever".to_i
=> 0
2.1.5 :002 > "12-whatever".to_i
=> 12
2.1.5 :003 > "whatever-12".to_i
=> 0

当您尝试将 Aaworld 转换为整数(这没有意义)时,您会得到0

在尝试将其转换为整数之前,您应该检查输入是否为整数。您可以使用正则表达式,或者如果输入不是整数则将引发的 Integer 方法。

2.1.5 :004 > Integer(12)
=> 12
2.1.5 :005 > Integer("world")
ArgumentError: invalid value for Integer(): "world"
from (irb):5:in `Integer'
from (irb):5
from /Users/weppos/.rvm/rubies/ruby-2.1.5/bin/irb:11:in `<main>'
2.1.5 :006 > Integer("12-world")
ArgumentError: invalid value for Integer(): "12-world"
from (irb):6:in `Integer'
from (irb):6
from /Users/weppos/.rvm/rubies/ruby-2.1.5/bin/irb:11:in `<main>'

关于ruby - 字符串到整数的显式转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34116938/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com