数字到英文单词ruby

时间:2015-05-16 21:56:50

标签: ruby string integer

我正在尝试编写一个接受数字并返回其字符串值的方法。我能够将哈希中的所有内容都返回。但是,我无法得到像43这样的东西。我最初想到的是首先检查参数是否有超过1个整数...并且可能将它们分开。我不确定。有人知道如何写出像55,78,91这样的数字吗?

def into_word(int)

  hash = {0 => "zero",
          1 => "one",
          2 => "two",
          3 => "three",
          4 => "four",
          5 => "five",
          6 => "six",
          7 => "seven",
          8 => "eight",
          9 => "nine",
          10 => "ten",
          11 => "eleven",
          12 => "twelve",
          13 => "thirteen",
          14 => "fourteen",
          15 => "fifteen",
          16 => "sixteen",
          17 => "seventeen",
          18 => "eighteen",
          19 => "nineteen",
          20 => "twenty",
          30 => "thirty",
          40 => "forty",
          50 => "fifty",
          60 => "sixty",
          70 => "seventy",
          80 => "eighty",
          90 => "ninety",
          100 => "one hundred"
      }

    if hash.has_key?(int)
      return hash[int]
    # elsif int.to_s.length == 2

    end

end

puts into_word(1)
puts into_word(2)
puts into_word(0)
puts into_word(4)
puts into_word(7)
puts into_word(9)
puts into_word(10)
puts into_word(42)

我试图在不使用任何宝石的情况下这样做。

2 个答案:

答案 0 :(得分:3)

Rosetta Code有一个算法可以做到这一点,它运行得非常好,并且可以处理愚蠢的大数字。

答案 1 :(得分:2)