标题:数组操作
只看楼主
fangyangwa
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-4-15
结帖率:0
已结贴  问题点数:20 回复次数:7 
数组操作
读取txt中的数组 然后将数组存储为float类型 怎么实现 我在类型转换时总是出错 求高手指点 最好用实例
搜索更多相关主题的帖子: 存储 最好 
2013-04-15 15:31
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
得分:20 
转换的时候为什么出错啊,是txt中的数据原本就不能换转成float类型,还是说报错的地方不是转换问题,是别的问题,你既没有贴代码,也没有说报了什么样的错
2013-04-15 15:41
fangyangwa
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-4-15
得分:0 
回复 2楼 yhlvht
FileStream filest = new FileStream(@"C:\Documents and Settings\Administrator\桌面\123.txt", FileMode.Open, FileAccess.ReadWrite);
            StreamReader sr = new StreamReader(filest);
            string strLine = sr.ReadLine();
            strLine = strLine.Trim();
            string[] str = strLine.Split(' ');
            float[] array = float.Parse(str);

            while (strLine != null)
            {
                Console.WriteLine(array);
                strLine = sr.ReadLine();
            }
            sr.Close();
            filest.Close();
            Console.ReadLine();

我的目的是想把读取出来的字符形式的数组,存储到float的数组中
2013-04-15 15:57
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
得分:0 
float[] array = float.Parse(str); Parse()的方法是接受字符串,你放的是一个字符串数组,你可以把str里面的东西一个个取出来转换,再一个个放到float数组里面

while (strLine != null)
{
    Console.WriteLine(array);
    strLine = sr.ReadLine();
}
while里面代码少了,你读了第二行,就不转换了么,但是你转换的代码并没有放到while里面
收到的鲜花
  • fangyangwa2013-04-15 16:30 送鲜花  3朵   附言:我很赞同
2013-04-15 16:13
fangyangwa
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-4-15
得分:0 
回复 4楼 yhlvht
不好意思啊   float array = float.Parse(strLine);这个语句为啥是错的 说是参数不正确  你说的那个一个一个怎么取?您能把具体的代码给我说一下吗?谢谢你
2013-04-15 16:29
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
得分:0 
Parse方法要求你传入string型,就是字符串,并且字符串是要可以被转换的数字类型的,你传进来的字符串有别的字符,当然不能转了,比如要你把"1.1 1.2 1.3"转成1个数字,你自己也转不出来吧

float[] array = new float[str.Length];
for(int i = 0; i < str.Length; i++)
{
    array[i] = float.Parse(str[i]);
}
2013-04-15 16:42
fangyangwa
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-4-15
得分:0 
回复 6楼 yhlvht
你说的对 刚才没看见我那个txt不是纯数字的  还有其他字符串  谢谢你
2013-04-15 16:49
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
得分:0 
你还可以用 float[] array =  Array.ConvertAll(str, x => float.Parse(x));    //直接把字符串数组转换成float数组,这种方式会涉及到你没有学过的东西

float[] array =  Array.ConvertAll(str, x => float.Parse(x));
跟下面语句等效
float[] array = Array.ConvertAll<string, float>(str, delegate(string x) { return float.Parse(x); });
跟下面语句等效
float[] array = Array.ConvertAll<string, float>(str, conv);

//转换方法,这是一个单独的方法,它的方法名作为参数传到上面的语句中
public float conv(string x)
{
    return float.Parse(x);
}
收到的鲜花
  • fangyangwa2013-04-16 13:11 送鲜花  3朵   附言:我很赞同
2013-04-15 17:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-404291-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.750416 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved