用逗号将string转换为整数
有没有简单的方法将“1,112”转换为整数1112而不是1?
我有一个,但不是很整齐:
"1,112".split(',').join.to_i #=> 1112
这个怎么样?
"1,112".delete(',').to_i
您可能还需要确保您的代码本地化正确,或确保用户习惯了“国际”符号。 例如,“1,112”实际上是指不同国家的不同号码。 在德国,这意味着这个数字超过了一个,而不是一千个。
相关的维基百科文章在http://en.wikipedia.org/wiki/Decimal_mark 。 这个时候似乎写得不好。 例如作为一个中国人,我不确定中国的这个千分机的描述是从哪里来的。
一些更方便
"1,1200.00".gsub(/[^0-9]/,'')
它使“1 200 200”正常工作
我会使用String#tr
:
"1,112".tr(',','').to_i # => 1112
以下是另一种可以工作的方法,虽然与其他一些方法一样,它会去掉小数位。
a = 1,112 b = a.scan(/\d+/).join().to_i => 1112
如果有人正在寻找一个比逗号更多,我是一个迷:
"1,200".chars.grep(/\d/).join.to_i
不知道性能,但它比gsub
更灵活,即:
"1-200".chars.grep(/\d/).join.to_i