Matterhorn The
2018-03-26 12:55
采纳率: 100%
浏览 2.9k
已采纳

求助Java读取txt文件数据计算值并进行值分类处理

大佬们,您好。。求助JAVA中如何读取TXT文件数据并计算。读取TXT中的数据,要支持读取多个数据,且要计算出值,计算公式附下。 最后在另一个文本中按最后一个数据(英文字母)进行分类,并把计算的值显示出来。。附加:支持读取一下excel文件中的数据。 计算公式:(x1-x2)(x1-x2)+(x3-x4)(x3-x4)+------- 计算出来的值最后进行开方计算图片说明

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • cxd&&god 2018-03-27 01:22
    已采纳

    File file = new File("../inir.txt");//路径根据自己的位置更改
    BufferedReader br = new BufferedReader(new FileReader(file));
    Map map = new HashMap<>();
    String line = null;
    while((line=br.readLine())!=null){
    String[] temp = line.split(",");
    double[] tmp = {};
    double sum =0;
    for(int i=0;i<temp.length-1;i++) {//注意最后一位元素不是数字,不要循环,目的是转化为double类型数组
    tmp[i] = Double.parseDouble(temp[i]);
    if(0%2==0) {
    sum = sum + Math.pow((tmp[i+1]-tmp[i+2]),2);//(x1-x2)*(x1-x2)+(x3-x4)(x3-x4)
    }
    }
    if(map.get(temp[temp.length-1])!=null) {//对最后一位分类
    map.put(temp[temp.length-1], sum+map.get(temp[temp.length-1]));
    }else {
    map.put(temp[temp.length-1], sum);
    }
    }
    for(String key:map.keySet()) {
    map.put(key, Math.sqrt(map.get(key)));
    }
    //最后这个map集合就是你这个TXT每一个类的和的平方值.可以输出看看
    System.out.println("txt的结果值:"+map.toString());

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 城南一休 2018-03-26 13:24

    不太明白你说的计算公式,但是我可以告诉你怎么得到你的数据。
    File file=new File(readPath);//创建一个file对象,参数是你的文件路径
    BufferedReader buf=new BufferedReader(new FileReader(file));//读取文件
    while(true){
    String str=buf.readLine();//一行一行读取数据
    //下面是对每行数据进行拆分
    String[] strs=str.split(",");//这个是按逗号拆分,String数组保存拆分过后的每个元素

            //然后你可以进行自己的操作,可以循环把数字的元素转换成double型的,再按照你的公式进行计算。
            //开方的语句是:Math.sqrt(要开方的参数);
            //你自己慢慢琢磨吧
    

    }

    评论
    解决 1 无用
    打赏 举报
  • cxd&&god 2018-03-26 13:12

    没有表达清楚,每个类里面有多行这样的数,是对每行按你这个公式(x1-x2)(x1-x2)+(x3-x4)(x3-x4)算出来相加在开平方吗,这样其实每行读取就行了
    按逗号拆分,去拆分的数组最后一个值做分类,然后对你每行的这个数据按公式计算,每一个类在创建一个的int值做sum相加,最后对每个类开平方就行

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题