Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我需要计算字符串中每个单词的字母数,并将结果显示为数组,哪里有错误?_C# - Fatal编程技术网

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()+" ";