计算输入的文本字符串(语言 c#)中的元音、辅音、数字和其他字符
本文关键字:辅音 数字 字符 其他 字符串 文本 输入 语言 计算 | 更新日期: 2023-09-27 18:31:16
有人可以看看我的代码吗? 我需要计算输入文本框中的字符数,并让它们显示在正确的标签框中。(辅音、元音、数字等) 我确实有数字一工作,他们在元音上搞砸了。
确定文本是辅音、元音、数字还是其他字符。 然后它显示每个计数。
int consCount = 0;
int vowelCount = 0;
int digitCount = 0;
int otherCount = 0;
string inputString;
inputString = this.entryTextBox.Text.ToLower();
char[] vowels = new char[] {'a', 'e', 'i', 'o', 'u'};
string vow = new string(vowels);
for (int index = 0; index < inputString.Length; index++)
{
if (char.IsLetterOrDigit(inputString[index]))
{
if (inputString.Contains(vow))
vowelCount++;
}
else if (char.IsDigit(inputString[index]))
digitCount++;
}
this.voweldisplayLabel.Text = vowelCount.ToString();
this.digitsdisplayLabel.Text = digitCount.ToString();
this.constdisplayLabel.Text = consCount.ToString();
this.otherdisplayLabel.Text = otherCount.ToString();
您发布的代码中有两个问题:
-
else
的位置与for
对齐,而不是if
,因为它应该。 -
String.Contains
正在尝试匹配整个字符集...它不会将其拆开并单独查找每个字符(只有当字符串包含aeiou
作为块时,它才会true
)。 如果需要,可以使用 Linq 作为单行代码完成此操作。 否则,嵌套一个foreach
并在char
列表中循环以找到您的匹配项。
我认为
你搞砸了else语句。它应该直接在 if 语句的右括号之后。但在这里,它位于 for 循环的右括号后面。也许你需要一些睡眠;)
我想通了。 我让元音和数字都能正确显示。 =) 现在我要去研究辅音和其他字符了。
int vowelCount = 0;
int digitCount = 0;
string inputString;
inputString = this.entryTextBox.Text.ToLower();
char[] vowels = new char[] { 'a', 'e', 'i', 'o', 'u' };
string vow = new string(vowels);
for (int index = 0; index < inputString.Length; index++)
{
if (char.IsLetterOrDigit(inputString[index]))
{
if (vow.Contains(inputString[index]))
{
vowelCount++;
}
else if (char.IsDigit(inputString[index]))
digitCount++;
}
}
this.voweldisplayLabel.Text = vowelCount.ToString();
this.digitsdisplayLabel.Text = digitCount.ToString();