我目前正在处理一个接受文本文件的代码,然后显示以特定字母开头的字符数。就在这里,我已经编写了一些代码,但无法解决正在创建的逻辑错误。如果有人可以提供帮助,请帮助我了解我在这里做错的事情,以便立即开始改进!我在用C#编码,也使用Visual Studio。下面是我的代码:
static void Main(string[] args)
{
// This is loop constantly occurs
while (true)
{
string UserInput;
int count = 0;
// here I ask for user input then convert to text file.
Console.WriteLine("Enter a text file into the console.");
UserInput = Console.ReadLine();
char LastCharacter = UserInput[UserInput.Length - 1];
// Two letters I am looking for at end of text file words.
foreach (char item in UserInput)
{
if (item == 't')
{
count++;
}
else if (item == 'e')
{
count++;
}
}
Console.WriteLine("There are {0}", + count + " words that end in t or e.");
Console.WriteLine("Press any key to continue...");
Console.ReadKey();
}
}
这是我在命令提示符下得到的输出。
Enter a text file into the console.
//Entered user text
that is the way
Result:
There are 2 words that end in t or e.
Press any key to continue...
注意,它只是在单词开头计算t。我很难更改该设置,因此它在单词末尾计入“ e”和“ t”。
(循环重复) 在控制台中输入一个文本文件。
答案 0 :(得分:0)
这将起作用。请查看编号注释,以查看错误所在。
static void Main(string[] args)
{
while (true)
{
// This is loop constantly occurs.
//variables;
string UserInput;
int count = 0;
//Where I ask for user inout then convert to text file.
Console.WriteLine("Enter a text file into the console.");
UserInput = Console.ReadLine();
char LastCharacter = UserInput[UserInput.Length - 1];
// 1) You need to extract the words in the user input - this assumes they are delimited by a space
foreach (var word in UserInput.Split(' '))
{
// 2) You want to check the first character of each word
// 3) The StringComparison.CurrentCultureIgnoreCase assumes you want to ignore case - if you DO want to consider case, remove the parm
// 4) You can do the compare using the 'or' operator - no need for else if
if (word.StartsWith("t", StringComparison.CurrentCultureIgnoreCase) || word.StartsWith("e", StringComparison.CurrentCultureIgnoreCase))
{
count++;
}
}
Console.WriteLine("There are {0}", +count + " words that begin with t or e.");
Console.WriteLine("Press any key to continue...");
Console.ReadKey();
}
}