将输入字符串转换为整数

时间:2016-07-09 06:11:10

标签: ruby string integer decimal

我需要使用get_integer_from_string()函数将输入字符串转换为整数 我正在使用Ruby 我有这个时间表。

enter image description here

基于我们需要从基数7转换到基数10的计划

请注意: 1-如果遇到没有数字序列的字符串,则应返回零(0)。

2-字符串可以在形成整数的字符之后包含其他字符,这些字符将被忽略并且对此函数的行为没有影响。

感谢您帮我完成作业。

3 个答案:

答案 0 :(得分:5)

正如Tim上面所指出的那样,你的表显示了基数7,而不是6. String#to_iFixnum#to_s都选择了一个可选的基数(基数)参数:

p "020".to_i(7)
# => 14
p 14.to_s(7)
# => "20"

为了处理不是0-6的尾随字符,String#slice(a.k.a。String#[])效果很好:

expr = /^[0-6]*/

p "72"[expr].to_i(7)
# => 0
p "0202xyz"[expr].to_i(7)
# => 100
p "27"[expr].to_i(7)
# => 2

答案 1 :(得分:1)

您要做的是将字符串(表示基数为7的数字)转换为基数为10的整数。这可以通过

完成
"021".to_i(7)
# => 15

请参阅Ruby String类的Documentation以获取方法to_i()

答案 2 :(得分:0)

我说这不确定它是否正确

def get_integer_from_string(str)
  return 0 if (/^(?<num>\d+)$/ =~ str).nil?
  result = 0
  str.reverse.each_char.with_index do |char, index|
    tmp = char.to_i * 7**index
    result += tmp
  end
  result rescue 0
end