将一个整数转换为单词字符串

4
我需要将一个整数值转换为它的英文单词等效形式(即4 =>“four”,1879 =>“one thousand, eight hundred seventy-nine”)在.NET中(具体来说是3.5)。我想知道是否有任何内置于.NET框架中的东西可以进行这样的转换。似乎足够有用,应该属于其中。我还没有能够找到做这个工作的任何东西。如果它没有包含在框架中,有没有比数字/位置特定的查找更优雅的想法?

这看起来非常类似于Project Euler上的一个问题。 - stephenbayer
请查看此链接:Functional Fun: Euler 17,其中包含一个LINQ解决方案。 - Anthony
请查看此问题:https://dev59.com/F3VC5IYBdhLWcg3wZwJT - mandaleeka
没有内置的功能。这里有一种方法可以实现。 - danish
3个回答

3

输入的数字为字符串 s。

      const string input = "1023";

        string[] placement = { "thousand", "hundred", "ten", "" };
        string[] numbersToLetters = { "", "one", "two", "tre", "four", "five", "six", "seven", "eight", "nine" };

        for (int i = 0; i < input.Length; i++)
        {
            int  digits = input[i] != '0' ? (placement.Length - input.Length) + i : 3;
            int result = int.Parse(input[i].ToString());

            var type = placement[digits];
            var number = numbersToLetters[result];
            Console.WriteLine(number + type);
        }

0

0

没有直接的函数可以为您转换和创建单词形式。您将需要编写程序,基本上您将不得不硬编码所有数字的值,即1一个,2两个,...,9九个。然后,您还需要注意十位、百位、千位,然后您将需要编写逻辑来提取数字并相应地附加单词。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接