我一直试图分裂一个字符串两次,但我不断收到错误“索引超出了数组的界限”。如何分割一个字符串TWICE
这是我打算分割字符串:
"a*b*c*d*e^1*2*3*4*5^e*f*g*h*i^"
使得我使用"^"
作为分隔符在第一阵列分离,使得每个组将寻找第一结果后如下
a*b*c*d*e 1*2*3*4*5 e*f*g*h*i
然后此后对这个组与*
执行另一个分割操作作为隔膜,使得结果,例如,从所述第一组是a b c d e
这是C#代码:
words = "a*b*c*d*e^1*2*3*4*5^e*f*g*h*i^";
char[] del = { '^' };
string[] splitResult = words.Split(del);
foreach (string w in splitResult)
{
char[] separator = { '*' };
string[] splitR = w.Split(separator);
foreach (string e in splitR)
{
string first = splitR[0];
string second = splitR[1];
string third = splitR[2];
string fourth = splitR[3];
string fifth = splitR[4];
}
}
你有没有试过words.Split(del,StringSplitOptions.RemoveEmptyEntries);?第一次拆分后的输出是否为空? – David 2013-03-16 07:39:39
您应该检查splitR-array是否包含5个预期的元素。问题是最后一个w不包含任何数据(因为最后一个'^') – Casperah 2013-03-16 07:40:38
@David谢谢,StringSplitOptions.RemoveEmptyEntries是我丢失的 – user2176410 2013-03-16 07:48:04