Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从文件中读取数字并在java中对其执行操作?_Java_File - Fatal编程技术网

如何从文件中读取数字并在java中对其执行操作?

如何从文件中读取数字并在java中对其执行操作?,java,file,Java,File,这是我的文件信息: mahdi aspanani 664 22.0 阿里·莫哈达西675 26.0 我想从文件中读取此信息,并计算22.0+26.0 如何在java中执行此操作?假设您的意思是文件内容的结构如下: <string> <string> <int> <summand 1> <string> <string> <int> <summand 2> 不要忘记输入文件名而不是filename 首

这是我的文件信息:

mahdi aspanani 664 22.0
阿里·莫哈达西675 26.0

我想从文件中读取此信息,并计算22.0+26.0


如何在java中执行此操作?

假设您的意思是文件内容的结构如下:

<string> <string> <int> <summand 1> <string> <string> <int> <summand 2>
不要忘记输入文件名而不是
filename

  • 首先,使用Scanner实例打开文件
  • 读每一行
  • 在空间上拆分
  • 将第四个标记转换为双精度标记
  • 把它加到总和上
  • 继续,直到没有更多的线

  • 像这样读取文件,每行拆分一行(按空格字符串)。你想怎么做就怎么做为什么要用扫描仪把它分开?扫描程序可以为您进行拆分。首先,您的方法甚至不编译。第二,当我修复它时,它不起作用。@WJS是的,我忘记了一个
    你用文件名替换了
    文件名吗?是的,我做了。您的代码中有多个问题。你只读了一行,只在一个空格上拆分。@WJS OP没有提到多行。同时,split方法会在尽可能多的事件上进行拆分。或者您的意思是分隔符必须正好是一个空格?在OP的示例中,它是一个。
    
    try(BufferedReader br=new BufferedReader(new FileReader(filename))){
        String[] split=br.readLine().split(" ");
        double result=Double.parseDouble(split[3])+Double.parseDouble(split[7]);
        //do with it whatever you want
    }catch(IOException e){
         e.printStackTrace();//or do something else or don't catch it and add it to the signature
    }
    
            Scanner input;
            String myFileName = "......";
            try {
                input = new Scanner(new File(myFileName)); 
                double sum = 0;
                while (input.hasNextLine()) {
                    String line = input.nextLine();
                    String[] vals = line.split("\\s+");
                    sum += Double.parseDouble(vals[3]);
                }
                System.out.println("sum = " + sum);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }