如何分割字符串,存入二维数组

microtan0902 2008-11-30 10:14:47

string[][] sLine;
string[] sArrays;

sArrays = File.ReadAllLines("d:\\NewSample1.txt");//读入一个大的txt文件

for (int i = 0; i < sArrays.Length; i++)
{
sLine[i] = sArrays[i].Split('\t');//我想把n行的数据的每一行按\t分割后 存入二维数组sline中 n行m列。不过到这步就报错说“未将对象引用设置到对象的实例。”

}


求教。
...全文
673 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
hanyu0528 2008-12-01
  • 打赏
  • 举报
回复
试过了,这样可以

string[] sArrays;
sArrays = File.ReadAllLines("E:\\name.txt");//读入一个大的txt文件
List<string[]> sLine = new List<string[]>();
for (int i = 0; i < sArrays.Length; i++)
{
if (sArrays[i] != null)
{
sLine.Add(sArrays[i].Split('\t'));
}
}
xxyping 2008-12-01
  • 打赏
  • 举报
回复
应该是你开始的时候没给个初值哦,C#里经常会有这个问题,这和它的安全机制有关
猿敲月下码 2008-12-01
  • 打赏
  • 举报
回复
数组好像要new一下的把,比如说:
string[] str=new string[5];
kent4j 2008-12-01
  • 打赏
  • 举报
回复
你这个定义就错了 这个不是二维数组 是数组的数组 二维数组是 string[,] sLine
hanyu0528 2008-12-01
  • 打赏
  • 举报
回复
试过了,这样可以~!!!

string[] sArrays;

sArrays = File.ReadAllLines("E:\\name.txt");//读入一个大的txt文件
List<string[]> sLine = new List<string[]>();

for (int i = 0; i < sArrays.Length; i++)
{
if (sArrays[i] != null)
{
sLine.Add(sArrays[i].Split('\t'));
}
}




tang_fu 2008-12-01
  • 打赏
  • 举报
回复
string[] sArrays;
sArrays = File.ReadAllLines("E:\\name.txt");//读入一个大的txt文件
List <string[]> sLine = new List <string[]>();
for (int i = 0; i < sArrays.Length; i++)
{
if (sArrays[i] != null)
{
sLine.Add(sArrays[i].Split('\t'));
}
}
长沙三毛 2008-11-30
  • 打赏
  • 举报
回复
sArrays = File.ReadAllLines("d:\\NewSample1.txt");
string[][] a = new string[sArrays.Length][];
for (int i = 0; i < sArrays.Length; i++)
{
sLine[i] = sArrays[i].Split('\t');
}
pinyu 2008-11-30
  • 打赏
  • 举报
回复
sLine[i]这个好像还不存在吧。

你应该先读入sArray,然后再根据这个数组的长度重新定义sLine在行上的长度

假如读进100行,你应申明成sLine[100][]
我不知道C#里面怎样根据生成的数值定义数组,你自己查查
  • 打赏
  • 举报
回复
仔细看你的代码,报错的原因是没对sLIne实例化导致的。
但如果实例化,就必须知道行和列的数量,肯定不行了,而且每行不见得用你的方法得到的列的数量是一样的,也会报错,帮你改下
List<string[]> sLine = new List<string[]>;
string[] sArrays;

sArrays = File.ReadAllLines("d:\\NewSample1.txt");//读入一个大的txt文件
sLine = new string[sArrays
for (int i = 0; i < sArrays.Length; i++)
{
if(sArrays[i] != null)
{
sLine.Add(sArrays[i].Split('\t'));
}
}
return sLine.ToArray();

长沙三毛 2008-11-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hulihui 的回复:]
string sLine[] = sArrays[i].Split('\t');
[/Quote]应该定义sLine的第一维
长沙三毛 2008-11-30
  • 打赏
  • 举报
回复
string sLine[] = sArrays[i].Split('\t');
  • 打赏
  • 举报
回复
第一个循环就报?

111,131

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧