C# 将3位数字转换为文本

C# 将3位数字转换为文本,c#,C#,我已经完成了大部分工作,但对于如何添加“二十岁”感到困惑。我有所有的“一岁”和“十几岁”,但它停在119,因为我没有“二十岁”。在静态字符串中,三位数是我设置三位数的地方 { class Program { static string[] digitWords = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "ele

我已经完成了大部分工作,但对于如何添加“二十岁”感到困惑。我有所有的“一岁”和“十几岁”,但它停在119,因为我没有“二十岁”。在静态字符串中,三位数是我设置三位数的地方

{
class Program
{
    static string[] digitWords =
    { "zero", "one", "two", "three", "four",
        "five", "six", "seven", "eight", "nine",
        "ten", "eleven", "twelve", "thirteen", "fourteen",
        "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" };

    static string[] tenWords =
    { "", "", "twenty", "thirty", "forty",
      "fifty", "sixty", "seventy", "eighty", "ninety" };

    static string[] hundredWords = { "", "One-hundred", "two-hundred", "three-hundred", "four-hundred", "five-hundred", "six-hundred", "seven-hundred", "eight-hundred", "nine-hundred"};

    static string TwoDigit(int num)
    {
        if (num < 0 || num > 1001) return "";
        if (num < 20) return digitWords[num];
        if (num % 10 == 0)
            return tenWords[num / 10];
        else
            return tenWords[num / 10] + "-" + digitWords[num % 10];
    }

    static string ThreeDigit(int num)
    {
        if (num % 100 == 0)
            return hundredWords[num / 100];
        else
            return hundredWords[num / 100] + "-" + digitWords[num % 100];
    }


    static void Main(string[] args)
    {
        for (int i = 0; i <= 19; i++)
            Console.WriteLine("{0}: {1}", i, TwoDigit(i));
        for (int i = 20; i <= 99; i +=7)
            Console.WriteLine("{0}: {1}", i, TwoDigit(i));
        for (int i = 100; i <= 1100; i ++)
            Console.WriteLine("{0}: {1}", i, ThreeDigit(i));
    }
}
{
班级计划
{
静态字符串[]数字字=
{“零”、“一”、“二”、“三”、“四”,
“五”,“六”,“七”,“八”,“九”,
“十”、“十一”、“十二”、“十三”、“十四”,
“十五”、“十六”、“十七”、“十八”、“十九”};
静态字符串[]十个字=
{”、“二十”、“三十”、“四十”,
“五十”、“六十”、“七十”、“八十”、“九十”};
静态字符串[]百字={”、“一百”、“二百”、“三百”、“四百”、“五百”、“六百”、“七百”、“八百”、“九百”};
静态字符串两位数(int num)
{
如果(num<0 | | num>1001)返回“”;
如果(num<20)返回数字字[num];
如果(数值%10==0)
返回十个字[num/10];
其他的
返回十个字[num/10]+“-”+数字字[num%10];
}
静态字符串三位数(int num)
{
如果(num%100==0)
返回百字[num/100];
其他的
返回百字[num/100]+“-”+digitWords[num%100];
}
静态void Main(字符串[]参数)
{

对于(int i=0;i这里有一个很好的工作解决方案:

试试:

else
    return hundredWords[num / 100] + " and " + TwoDigit(num);
}
可能重复的