private void button1_Click(object sender, EventArgs e)
{
string str = richTextBox1.Text;
string[] lines = str.Split(Environment.NewLine.ToCharArray());
for (int i = 1; i < lines.Length; i++)
{
Console.WriteLine(lines[i]);
string[] linecell = lines[i].Split(new char[] { ',' });
if (linecell.Length > 2) { richTextBox2.Text = richTextBox2.Text + "\r\n" + linecell[2]; } //读取出身份证号码
string aaa = AES.AESEncrypt(richTextBox2.Text);
richTextBox2.Text = aaa + "\r\n";
//对身份证号码进行加密
}
}
其实string aaa = AES.AESEncrypt(richTextBox2.Text);应该是string aaa = AES.AESEncrypt(linecell[2]); 但是提示我其他信息: 索引超出了数组界限。
该怎么改。。
你最后应该是 richTextBox2.Text = richTextBox2.Text + aaa + "\r\n";
在编程语言里,起始编号大都是从0开始的,而你从1开始的,会出现索引越界错误的
private void button1_Click(object sender, EventArgs e)
{
string str = richTextBox1.Text;
string[] lines = str.Split(Environment.NewLine.ToCharArray());
for (int i = 0; i < lines.Length; i++) //**这里索引从0开始就行了**
{
Console.WriteLine(lines[i]);
string[] linecell = lines[i].Split(new char[] { ',' });
if (linecell.Length > 2) { richTextBox2.Text = richTextBox2.Text + "\r\n" + linecell[2]; } //读取出身份证号码
string aaa = AES.AESEncrypt(richTextBox2.Text);
richTextBox2.Text = aaa + "\r\n";
//对身份证号码进行加密
}
}
private void button1_Click(object sender, EventArgs e)
{
string str = richTextBox1.Text;
string[] lines = str.Split(Environment.NewLine.ToCharArray());
for (int i = 0; i < lines.Length; i++)
{
Console.WriteLine(lines[i]);
string[] linecell = lines[i].Split(new char[] { ',' });
if (linecell.Length > 2) { richTextBox2.Text = richTextBox2.Text + "\r\n" + linecell[2]; } //读取出身份证号码
string aaa = AES.AESEncrypt(richTextBox2.Text);
richTextBox2.Text = aaa + "\r\n";
//对身份证号码进行加密
}
}
if (linecell.Length > 2) { richTextBox2.Text = richTextBox2.Text + "\r\n" + linecell[2]; } //读取出身份证号码
string aaa = AES.AESEncrypt(linecell[2]);
在 判断 的外面
linecell 的 item的数量可能少于3个
这里的 linecell[2] 超出了边界,
private void button1_Click(object sender, EventArgs e)
{
string str = richTextBox1.Text;
string[] lines = str.Split(Environment.NewLine.ToCharArray());
for (int i = 1; i < lines.Length; i++) // 至少要有 2个才会执行下面的代码
{
Console.WriteLine(lines[i]);
string[] linecell = lines[i].Split(new char[] { ',' });
if (linecell.Length > 2) //最少有3个元素 linecell[2] 就是第3个元素
{
richTextBox2.Text = richTextBox2.Text + "\r\n" + linecell[2];
string aaa = AES.AESEncrypt(linecell[2]);
richTextBox2.Text = aaa + "\r\n";
}
else
{
//当少于3个的情景
}
//另外 我看了下, 就算用你的代码,也不应该报告下标超出范围啊
}
}
你的代码也不应该出问题啊!
如果没有 string aaa = AES.AESEncrypt(linecell[2]); richTextBox2.Text = aaa + "\r\n"; 这两句话,这显示结果没错,但是一加,成你说的那样,
成这样了,完全不是想要的结果啊,我想要的上把图一里面的身份证都加密了
linecell[2]
这是取linecell数组的第三个元素,那么你的本意是要取第三个元素吗?