我正在编写一个程序,该程序将计算用户编写的字符串包含的逗号数量。
我正在使用另一种方法来执行此操作,在这种方法中,将分析写入的字符串并返回逗号量。
我遇到的问题是我使用的是字符串,如果有意义的话,需要将其放在方法中时转换为整数。
我知道可以通过删除方法并在“ 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);
)
我希望我解释得很好,所以我的问题是:我该如何解决?
答案 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。而且您不需要计算变量。