0

我有以下代码:

String[] enteteSplit = new String[48];
enteteSplit = entete.Split(';');
enteteSplit[35] = enteteSplit[35].Replace(',', '.');

其中 entete 是一个字符串。第三行抛出一个 IndexOutOfRangeException ,我无法解决这个问题,有什么想法吗?

非常感谢。

4

1 回答 1

3

当你拨打这条线

enteteSplit = entete.Split(';');

您正在有效地创建一个数组,该数组不再包含 48 个元素,而仅包含在分号字符处拆分字符串所获得的元素。

所以如果你的字符串是

entete = "test;test1;test2";
enteteSplit = entete.Split(';');

结果数组只有 3 个元素,因此试图到达第 35 个元素会导致 IndexOutOfRange 异常

您需要在此处引入安全检查

if(enteteSplit.Length > 35)
   enteteSplit[35] = enteteSplit[35].Replace(',', '.');
于 2015-02-10T15:17:25.780 回答