C# 我需要计算字符串中每个单词的字母数,并将结果显示为数组,哪里有错误?
我需要计算字符串中每个单词的字母数,并将结果显示为数组,哪里有错误C# 我需要计算字符串中每个单词的字母数,并将结果显示为数组,哪里有错误?,c#,C#,我需要计算字符串中每个单词的字母数,并将结果显示为数组,哪里有错误 private void button1_Click(object sender, EventArgs e) { string s = textBox1.Text; char[] b = new char[s.Length];// string to array int count = 0;
private void button1_Click(object sender, EventArgs e)
{
string s = textBox1.Text;
char[] b = new char[s.Length];// string to array
int count = 0;
int[] result = new int [ Convert.ToInt32(s.Length) ];
for (int i = 0; i < s.Length; i++)
{
b[i] = s[i];
}
for (int j = 0; j < b.Length; j++)
{
if (b[j] == ' ')
{
result[j] = count;
count = 0;
}
else
{
count++;
}
}
for (int k = 0; k < result.Length; k++)
{
textBox2.Text = result[k].ToString();
}
我将回答您的具体问题,然后就如何改进代码给出一些建议 第一: 可以修改最后三行以输出结果
for (int k = 0; k < result.Length; k++)
{
textBox2.Text = result[k].ToString();//BAD line
}
这条线路有三个主要问题
每次通过都会覆盖文本框中的文本
您没有筛选结果数组
如果最后一个单词没有空格,则未捕获最终计数
试试这个:
第二:如果您有其他空白字符、数字或标点符号,但没有空格字符,会发生什么情况
考虑使用RegEx-将文本拆分为单词,然后计算字母数
第三:如果字符串包含数千个字母,但只有几百个单词,会发生什么情况?如何减少结果数组的大小
考虑在确定字数后创建结果数组-如果使用正则表达式将文本拆分为字数,这很容易
祝你好运,瓦西亚 很抱歉,我是一个编码初学者当你说显示结果为数组时,你是什么意思?作为一个初学者,现在没有更好的时间开始学习如何调试:我的意思是我需要用eWebWordLook up string.Split and List.ToArray C帮助主题输出带有数量字母的数组。这是一个很好的建议@Vasya,string.Split对于您了解如何处理这个简单的案例可能非常有用:
for (int k = 0; k < result.Length; k++)
{
if (result[k]>0){
textBox2.Text += result[k].ToString()+" ";
}
}
if (count>0)textBox2.Text += result[k].ToString()+" ";