似乎String#to_i只在数字在字符串中前导时才起作用。
作品:
"123acb".to_i #=> 123
不起作用,但我要完成的是:
"abc123def".to_i #=> 123
我一直在寻找一种内置的方法来完成这项工作,但是我还没有找到我唯一的选择是使用正则表达式吗?
编辑-
真 的!很多不错的选择顺便提一下,有没有什么特殊的原因可以解释为什么to_i只处理前导数字?

最佳答案

做这样的事怎么样?

"abc123def".gsub(/\D/, '').to_i
# => 123

如果你想处理一个大字符串中的多个数字,你可以
"a22bc123de4f004".split(/\D/).reject(&:empty?).map(&:to_i)
# => [22, 123, 4, 004]

关于ruby - 有没有一种方法可以从字符串中提取整数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19044171/

10-12 13:10