【问题标题】:C# Output to ConsoleC# 输出到控制台
【发布时间】:2016-09-15 04:38:34
【问题描述】:

在课堂上,我有一个作业要我将数值翻译成单词等价物。也涨了 9999。

我通过字典命令实现了这一点,但在设置数组后无法这样做。 我们只是第四周的课,所以对我来说很难。

这是我的数组

string[] ToWordsOne = new string[10] { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
string[] ToWordsTen = new string[8] { "twenty", "thirty", "fourty", "fifty", "sixty", "seventy", "eighty", "ninety"};
string[] ToWordsTeens = new string[9] { "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"};

该程序似乎可以很好地识别这一点,但是当我输出代码时,它什么也没说或崩溃(取决于我所做的更改。)

 int i = 0;
        string output = "";
        while (i <= input.Length)
        {
            if (i == (input.Length))
            {
                output = output + " " + ToWordsOne[i];
            }
            if (i == (input.Length))
            {
                if (input == 1)
                {
                    output = ToWordsTeens[i];
                }

                else
                {
                    output = output + ToWordsTen[i];
                }

            }
            if (i == (input.Length))
            {
                output = output + ToWordsOne[i] + " hundred" + " ";
            }
            if (i == (input.Length))
            {
                output = ToWordsOne[i] + " thousand" + " ";
            }
            i++;

这是我用于从字典中输出结果的代码。我知道我不能使用“.length”方法。但我不知道从那里去哪里。

【问题讨论】:

标签: c# arrays output


【解决方案1】:

根据这篇文章:converting-numbers-in-to-words-c-sharp 您可以将数字转换为如下所示的单词。

public static string NumberToWords(int number)
    {
        if (number == 0)
            return "zero";

        if (number < 0)
            return "minus " + NumberToWords(Math.Abs(number));

        string words = "";

        if ((number / 1000000) > 0)
        {
            words += NumberToWords(number / 1000000) + " million ";
            number %= 1000000;
        }

        if ((number / 1000) > 0)
        {
            words += NumberToWords(number / 1000) + " thousand ";
            number %= 1000;
        }

        if ((number / 100) > 0)
        {
            words += NumberToWords(number / 100) + " hundred ";
            number %= 100;
        }

        if (number > 0)
        {
            if (words != "")
                words += "and ";

            var unitsMap = new[] { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" };
            var tensMap = new[] { "zero", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety" };

            if (number < 20)
                words += unitsMap[number];
            else
            {
                words += tensMap[number / 10];
                if ((number % 10) > 0)
                    words += "-" + unitsMap[number % 10];
            }
        }

        return words;
    }

【讨论】:

    猜你喜欢
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-02
    • 1970-01-01
    相关资源
    最近更新 更多