尝试将方法从字符串转换为整数

时间:2018-10-14 14:44:51

标签: c# methods

我正在编写一个程序,该程序将计算用户编写的字符串包含的逗号数量。

我正在使用另一种方法来执行此操作,在这种方法中,将分析写入的字符串并返回逗号量。

我遇到的问题是我使用的是字符串,如果有意义的话,需要将其放在方法中时转换为整数。

我知道可以通过删除方法并在“ main”中编写代码来轻松完成此操作,但是我不想这样做,因为我将扩展程序以分析句点数量和数量字符串中的分号。

这是我的代码:

static void Main(string[] args)
    {
        Console.WriteLine("Enter a text:");
        string text = Console.ReadLine();
        int count = 0;
        count = NumberOfCommas(text);
        int kommaCount = count;


        int NumberOfCommas(int text1)
        {
            foreach (char letter in text)
            {
                if (letter == ',' )
                {
                    count++;
                }
            }
            return count;
        }
        Console.WriteLine("There's {0} comma(s) in your text.", kommaCount);
        Console.ReadKey();
    }

我得到的错误代码是“无法从'string'转换为'int'。(该代码引用此行的'text'部分:count = NumberOfCommas(text);

我希望我解释得很好,所以我的问题是:我该如何解决?

3 个答案:

答案 0 :(得分:1)

将功能签名更改为

 int NumberOfCommas(string text1) { ...

也将此功能移出main函数。

答案 1 :(得分:1)

这是由于您的方法签名。 int NumberOfCommas(int text1)正在寻找int text1,它应该是string text1

此外,我想指出两点。首先,您正在使用局部函数。这没什么不对的,对于您在这里所做的都很好。我可能建议将其拔出,因为它实际上没有任何变量需要它保持作用于该方法的范围。

另一件事是您认为其他人希望您将其全部放在main中,但您说的是

  

我将扩展程序

所以您决定反对... 这是一件好事,也是正确的思维/发展方式,因此,如果有人为了简单起见告诉您将其放在主要位置,我会告诉您坚持使用枪支。你的逻辑是对的。

答案 2 :(得分:1)

static void Main(string[] args)
{
    Console.WriteLine("Enter a text:");
    string text = Console.ReadLine();
    int count = 0;
    count = NumberOfCommas(text);

    Console.WriteLine("There's {0} comma(s) in your text.", count);
    Console.ReadKey();
}

int NumberOfCommas(String text1)
{
    int count;

        foreach (char letter in text1)
        {
            if (letter == ',' )
            {
                count++;
            }
        }
        return count;
}

有几个错误。该函数的参数数据类型应为String,foreach循环中的文本应为text1。而且您不需要计算变量。