我需要计算字符串的每个单词中的字母并将结果显示为数组,我在哪里有错误

本文关键字:结果 有错误 显示 数组 在哪里 计算 字符串 单词中 | 更新日期: 2023-09-27 18:33:59

我需要计算字符串的每个单词中的字母并将结果显示为数组,我在哪里有错误?

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
        }

该生产线存在三个主要问题(除其他外(。

  • 每次传递都会覆盖文本框中的文本
  • 您没有过滤结果数组
  • 如果最后一个单词没有空格,则尚未捕获最终计数

试试这个:

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

第二如果您有其他空格字符、数字或标点符号但没有空格字符,会发生什么情况?

考虑使用 RegEx 将文本拆分

为单词 - 搜索 RegEx 以拆分单词中的文本,然后计算字母。

第三:如果你的字符串包含数千个字母但只有几百个单词,会发生什么?如何减小结果数组的大小?

考虑在确定单词数后创建结果数组 - 如果您使用 RegEx 将文本拆分为单词,这很容易。

祝瓦夏好运!