黑马程序员技术交流社区

标题: 这段程序中为什么会出现索引超出数组界限的错误??? [打印本页]

作者: 赵威    时间: 2013-4-29 16:34
标题: 这段程序中为什么会出现索引超出数组界限的错误???
string[] strs = File.ReadAllLines("电话.txt",Encoding.Default );
            for (int i = 0; i < strs.Length; i++)
            {
                string[] parts=strs.Replace ("\"","").Split(',');
                Console.WriteLine("姓名:{0} 电话:{1}",parts[0]+parts[1],parts[2]);
            }
            Console.ReadKey();

其中 电话.txt 中的内容是:
"张","三","15011111111";
"李","四","15011111112";
"王","五","15011111113";
"赵","六","15011111114“

出现错误:
file:///C:/Users/Administrator/AppData/Local/youdao/ynote/images/82703E7EC41E421E9BB17FF72B471142/1EA7341DCFCE4720A4605F9253EBEDE1.jpg
结果中本来应该显示四行数据,但却只显示了一行,还报错说是索引超出了数组界限,这是为什么????


作者: 赵威    时间: 2013-4-29 16:36
刚才图片没传上去,补上图片

索引超出数组界限.jpg (55.99 KB, 下载次数: 0)

索引超出数组界限.jpg

作者: 陈晖    时间: 2013-4-29 16:41
本帖最后由 陈晖 于 2013-4-29 16:45 编辑


文字老是无法显示增加的内容。
{:soso_e100:}

作者: 赵威    时间: 2013-4-29 16:44
陈晖 发表于 2013-4-29 16:41
你应该将这句代码:string[] parts=strs.Replace ("\"","").Split(',');
---------------------改成string[ ...

出错的时候这个地方就调试过一次了,换了种分割的方法,可还是报同样的错误啊????崩溃了
作者: 陈晖    时间: 2013-4-29 16:47
赵威 发表于 2013-4-29 16:44
出错的时候这个地方就调试过一次了,换了种分割的方法,可还是报同样的错误啊????崩溃了 ...


增加了内容,刚才通过文字修改不成功,我截了图,你将图中增加的代码加上去试一下。
作者: 黄晓波    时间: 2013-4-30 09:19
本帖最后由 黄晓波 于 2013-4-30 09:30 编辑
  1. static void Main(string[] args)
  2.         {
  3.             string filePath = @"C:\1.txt";
  4.             string[] fileAllLines = File.ReadAllLines(filePath, Encoding.Default);
  5.             for (int i = 0; i < fileAllLines.Length; i++)
  6.             {
  7.                 string[] fileLine = fileAllLines[i].Replace("\"", "").Replace(";", "").Split(',');
  8.                 Console.WriteLine("姓名:{0}  电话:{1}",fileLine[0]+fileLine[1],fileLine[2]);
  9.             }
  10.             Console.ReadKey();
  11.         }
复制代码
如果这些都没问题的话,有可能是你的文本中存在有空行(结尾的部分?);




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2