string ip = ini.IniReadValue("Settings", "ip");
string[] ip2 = ip.Split('.');
foreach (var part in ip2)
{
textBox3.Text = part[0].ToString();
textBox4.Text = part[1].ToString();
textBox5.Text = part[2].ToString();
textBox6.Text = part[3].ToString();
}
大家好,我的问题是 textBox3 中只有一个 1,而我希望它有 123 作为记录,ip = 123.456.789.101 用于测试目的。
这是结果: 。
它在设置 textBox6 时也会崩溃:索引在数组的边界之外。
最佳答案
让我们手动跟踪您的代码:
ip2
包含数组{"123", "456", "789", "101"}
。- 然后您将在
foreach
循环中迭代数组,因此part
成为每个字符串"123"
,依次为“456”
、“789”
、“101”
。 - 然后您将索引到字符串(带方括号),它访问字符串中的各个
char
。所以在第一个循环中,部分[0]
是'1'
,部分[1]
是'2'
,part[2]
是'3'
,并且part[3]
超出了字符串的范围(长度=3)。
请注意,您需要调用 ToString()
也是一个很好的指标,表明出现了问题。
相反,你想要(没有 foreach
循环),
string ip = ini.IniReadValue("Settings", "ip");
string[] ip2 = ip.Split('.');
textBox3.Text = ip2[0];
textBox4.Text = ip2[1];
textBox5.Text = ip2[2];
textBox6.Text = ip2[3];
关于c# - 如何拆分字符串然后将字符串的每个部分放在文本框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18993885/