子字符串Windows窗体
本文关键字:窗体 Windows 字符串 | 更新日期: 2023-09-27 18:27:13
我的想法是将一个单词输入到TextBoxWord中,并将另一个单词放入另一个文本框textBoxLitera,然后在我的TextBoxWord.text接收多个text BoxLitera.text单词。程序给了我一个很好的答案,但抛出了一个异常
索引和长度必须引用字符串中的一个位置。参数名称长度。
namespace Literki
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnLitery_Click(object sender, EventArgs e)
{
int LetterCount = 0;
string letter = "";
string text = TextBoxWord.Text;
string wyr = textBoxLitera.Text;
int w = wyr.Length;
for (int i=0;i<text.Length;i++)
{
try
{
letter = text.Substring(i, w);
}
catch (ArgumentOutOfRangeException f)
{
MessageBox.Show(f.Message);
}
if (letter == textBoxLitera.Text)
LetterCount++;
}
MessageBox.Show(LetterCount.ToString());
}
}
}
我在这里做错了什么?(很抱歉我的语言,这是我第一次在这里发帖)谢谢你的帮助!
如果i
在字符串的末尾,并且您尝试将w
个字符(其中w > 1
)作为子字符串,它将失败。
例如,对于单词"四",最大索引为3("Four"[3]
返回"r")。让我们看看当我们在字符串末尾尝试长度大于0时会发生什么。
"Four".Substring(3, 4) // throws an exception
"Four".Substring(3, 1) // returns "r"
您需要确保:
- CCD_ 5的长度不大于CCD_ 6的长度。这将始终引发异常
- 代码的子字符串不能超过
text
的末尾。一种方法是将for循环上的条件更改为i <= text.Length - w
事实上,条件应该是
for (int i=0;i<text.Length -w+1;i++)