我有一段代码,就是从几个格式相似的字符串里面读出相同位置的数据
string[] gpsArr = gps.ReadFiletext();//一个数组型的字符串存储了我需要的几个字符串
string[] londata = new string[100];
string[] latdata = new string[100];
for (int i = 0; i < gpsArr.Length; i++)
{
string strTemp = gpsArr[i];
string[] lineArr = strTemp.Split(',');
if (lineArr[0] == "$GPGGA")
{
latdata[i] = lineArr[2];
londata[i] = lineArr[4];
}
}
在for循环里,如果取strTemp = gpsArr[0]指定某个字符串,最后latdata[i],londata[i] 就能输出正确的数据。
但是当取string strTemp = gpsArr[i]时,就会在下一句string[] lineArr = strTemp.Split(',');的地方报错说未将对象引用设置到对象的实例。不知道什么原因。希望各位前辈多多指教
string[] gpsArr = gps.ReadFiletext();//一个数组型的字符串存储了我需要的几个字符串
string[] londata = new string[100];
string[] latdata = new string[100];
for (int i = 0; i < gpsArr.Length; i++)
{
string strTemp = gpsArr[i];
string[] lineArr = strTemp.Split(',');
if (lineArr[0] == "$GPGGA")
{
latdata[i] = lineArr[2];
londata[i] = lineArr[4];
}
}
在for循环里,如果取strTemp = gpsArr[0]指定某个字符串,最后latdata[i],londata[i] 就能输出正确的数据。
但是当取string strTemp = gpsArr[i]时,就会在下一句string[] lineArr = strTemp.Split(',');的地方报错说未将对象引用设置到对象的实例。不知道什么原因。希望各位前辈多多指教
只是为什么strTemp = gpsArr[1]之类的就能存储数据,换成strTemp = gpsArr[i];就报错。还是不明白
如果是1,你写成gpsArr[1]不报错,用变量i(=1)的时候就报错了,不可能的,仔细查查
既然报这个异常了。。
基本上可以确定strTemp 是 null 值了。
string strTemp = gpsArr[i];
if(!string.IsNullOrEmpty(strTemp ))
{string[] lineArr = strTemp.Split(',');
if (lineArr.Length>0&7lineArr[0] == "$GPGGA")
{
latdata[i] = lineArr[2];
londata[i] = lineArr[4];
}
}
string strTemp = string.Empty;
if(string.IsNullOrEmpty(gpsArr[i]))
strTemp = gpsArr[i];
??
string strTemp = string.Empty;
if(!string.IsNullOrEmpty(gpsArr[i]))
{
strTemp = gpsArr[i];
//... ...
}