大家帮我看看是什么问题??

kangnasi 2008-07-11 01:16:49
class Program
{
static void Main(string[] args)
{
string path = @"d:\hhk.txt";

string[] lines = File.ReadAllLines(path);
ArrayList ls = new ArrayList();
//List<string []> ls = new List<string []>();
char[] delimiterChars = { ' ', '\r', '\n' };


foreach (string line in lines)
{
string[] numbers = line.Split(delimiterChars);

ls.Add(numbers);

}
foreach (string[] ss in ls)
{
foreach (string s in ss)
{
string st =s;
Double.Parse(s);
Console.WriteLine(s+" ");
}
Console.WriteLine();
}

}
}

hhk.txt里面的内容为:
123.11 456.22 789.33
123.11 456.22 789.33
123.11 456.22 789.33
123.11 456.22 789.33
123.11 456.22 789.33

我想试一下能不能把ls里面的数据转换为Double型,但红色那条语句老提示出错,请问是什么原因。
还有,我用String[] myArr = (String[])ls.ToArray(typeof(string))这语句向myArr数组里面插数据时,也插不进,请问怎么回事??谢谢!!
...全文
109 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
spmzfz 2008-11-04
  • 打赏
  • 举报
回复
Double.Parse(s);
这 行语句有错误吧,它赋予哪个变量?
xianguang321 2008-11-04
  • 打赏
  • 举报
回复
static void Main(string[] args)
{
string path = @"d:\hhk.txt";

string[] lines = File.ReadAllLines(path);
ArrayList ls = new ArrayList();
//List <string []> ls = new List <string []>();
char[] delimiterChars = { ' ', '\r', '\n' };


foreach (string line in lines)
{
string[] numbers = line.Split(delimiterChars);

ls.Add(numbers);

}
foreach (string[] ss in ls)
{
foreach (string s in ss)
{
string st =s.Trim();
if(st = string.Empty)
{
continue;
}
Double.Parse(st);
Console.WriteLine(st + " ");
}
Console.WriteLine();
}

}

试试这个看行不?
Annie_Cai 2008-11-04
  • 打赏
  • 举报
回复
帮你改了一下,是你分割字符串的时候有问题。

string path = @"c:\hhk.txt";

string[] lines = File.ReadAllLines(path);
ArrayList ls = new ArrayList();
//List <string []> ls = new List <string []>();

foreach (string line in lines)
{
string[] numbers = Regex.Split(line, " ", RegexOptions.IgnoreCase);
ls.Add(numbers);
}
foreach (string[] ss in ls)
{
foreach (string s in ss)
{
string st = s;
Double.Parse(s);
Console.WriteLine(s + " ");
}
Console.WriteLine();
}
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 kangnasi 的回复:]
可是我用console.write()打印出来,并没有显示空格啊。
请问:拆分空格是不是用这条语句:char[] delimiterChars = { ' ', '\r', '\n' };
string[] numbers = line.Split(delimiterChars);
[/Quote]
不要'\r','\n',这样就会有""出现,因为有可能换行符是"\r\n"
mjjzg 2008-11-01
  • 打赏
  • 举报
回复
Double是数值类型,你要将字符转换为数值,那它里面的空格呢
yijianxiangde100 2008-11-01
  • 打赏
  • 举报
回复
就是问题同上,我运行了一下程序,由于出现了"",所以不能出现异常
止戈而立 2008-11-01
  • 打赏
  • 举报
回复
肯定是有空串,相当于string.Empty,而不是空格...上面都说很清楚了,楼主没仔细看.
kangnasi 2008-07-11
  • 打赏
  • 举报
回复
没有人答吗?
kangnasi 2008-07-11
  • 打赏
  • 举报
回复
kangnasi 2008-07-11
  • 打赏
  • 举报
回复
可是我用console.write()打印出来,并没有显示空格啊。
请问:拆分空格是不是用这条语句:char[] delimiterChars = { ' ', '\r', '\n' };
string[] numbers = line.Split(delimiterChars);
  • 打赏
  • 举报
回复
只要空格就可以了,因为你已经按行读的
  • 打赏
  • 举报
回复
char[] delimiterChars = { ' ', '\r', '\n' };
这样来split会有问题吧,有可能一行的后面是\r\n,这扬就会产生“”这样的数据,parse当然会报错。
tfrtfr 2008-07-11
  • 打赏
  • 举报
回复
不好意思,上面没发好。
其实自己跟踪一下就知道,split出来的字符串里有"",可以处理一下。
if(s.Trim() !="") Double.Parse(s);
  • 打赏
  • 举报
回复
报错误贴出来
tfrtfr 2008-07-11
  • 打赏
  • 举报
回复
其实自己跟踪一下就知道,split出来的字符串里有"",可以处理一下。
if(s.Trim()<>"")
nattystyle 2008-07-11
  • 打赏
  • 举报
回复
无法转换空格成Double型
ericzhangbo1982111 2008-07-11
  • 打赏
  • 举报
回复
应该按照空格来拆分吧。

111,054

社区成员

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

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

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