码迷,mamicode.com
首页 > 其他好文 > 详细

如何用程序拆解文本中的数值并计算

时间:2020-05-23 09:32:15      阅读:54      评论:0      收藏:0      [点我收藏+]

标签:常见   target   rom   获得   调用   问题:   参考   不同的   涵盖   

比如每个文件由空格分隔的数字构成,行数列数不定,要实现一个可反复执行的算法,每次计算指定文件里所有数字的平均值。

如果只做一次,导入到Excel再算就行了。但如果要反复做很多次,就需要编程序了。各种程序设计语言都能完成这类事情,但不同的语言完成起来麻烦度相差很大。比如用JAVA实现上面的算法,写起来大概是这样:

import java.io.BufferedReader;

import java.io.IOException;

import java.io.FileReader;

import javax.swing.JFileChooser;

import javax.swing.JOptionPane;

import java.util.ArrayList;

 

public class Week04 {

    public static void   main(String[] args) throws IOException {

        String theFile;

        theFile =   getTheFileName();

        double theAverage;

        theAverage =   getTheAverage(theFile);

          displayTheResult(theAverage,"The average is;");

    }

 

    public static String   getTheFileName() {

        String theFile;

        JFileChooser jfc = new   JFileChooser();

          jfc.showOpenDialog(null);

        return theFile =   jfc.getSelectedFile().getAbsolutePath();

    }

 

    public static double   getTheAverage(String s) throws IOException {

        double value = 0,   numValues = 0;

        FileReader fr = new   FileReader(s);

        BufferedReader br = new   BufferedReader(fr);

        String aLine;

        while ((aLine =   br.readLine()) != null) {

             String nums[] = aLine.split(" ");

             For   (int i=0;i<nums.length;i++){

                value +=   Double.parseDouble(nums[i]);     

                numValues++;

             }

        }

        if (numValues > 1) {

            return   value/numValues;

        } else {

            return value;

        }

 

    }

    public static void   displayTheResult(double x, String s){

              JOptionPane.showMessageDialog(null,s + x);

    }

}

 

这就相当费劲了,用C、BASIC等类似语言也一样麻烦。Python会简单一些,但也没有本质差别。而且这些语言环境安装部署都很复杂。

如果用esProc就会简单很多,像这样的问题只要几行代码:

  A B
1 =file(pFile).import@i() /读入文件,pFile为参数,如d:\fo.txt
2 =A1.(~.array(" ")) /每行按空格拆分为数字
3 =A2.conj() /合并所有数字
4 =A3.avg(float(~)) /转为浮点并求平均

esProc 是个脚本语言,可以在 IDE 里反复执行,还可以用命令行方式调用。

类似其它的文件计算例子:比较 csv 文件中数据差异

处理 Excel 也不是问题:excel 合并汇总

这里有总结的更多文本计算例子,涵盖了常见的结构化数据的运算:SPL 结构化文本计算

esProc 是专业的文件处理脚本,即安即用,调试方便,类库丰富,详情参考:文件处理器

关于集算器安装使用、获得免费授权和相关技术资料,可以参见:如何使用集算器

如何用程序拆解文本中的数值并计算

标签:常见   target   rom   获得   调用   问题:   参考   不同的   涵盖   

原文地址:https://www.cnblogs.com/xiaohuihui-11/p/12940861.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!