我有从几个不同的 XML 数据库转储中导入的散列行,看起来像这样(但具有不同的键):
{"Id"=>"1", "Name"=>"Cat", "Description"=>"Feline", "Count"=>"123"}
我尝试使用 #to_i
但它将非数字字符串转换为 0
:
"Feline".to_i
# => 0
但我想要的是让 "Feline"
保持字符串的方式,而上面示例中的 Id
和 Count
成为整数 1
和 123
。
有没有简单的方法仅将数字字符串值转换为整数?
最佳答案
一行回答: 使用正则表达式方法
h.merge(h) { |k, v| v.match(/\A[+-]?\d+?(\.\d+)?\Z/) ? v.to_i : v }
使用整数方法
h.merge(h) { |k, v| Integer(v) rescue v }
关于ruby - 如何仅将数字的字符串哈希值转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12318021/