我需要计算字符串的每个单词中的字母并将结果显示为数组,我在哪里有错误
本文关键字:结果 有错误 显示 数组 在哪里 计算 字符串 单词中 | 更新日期: 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 将文本拆分为单词,这很容易。
祝瓦夏好运!