我如何从包含双打和字符串的文本文件中打印双打?

How do I just print the doubles from a text file with both doubles and strings?

我正在尝试获取下面的文本文件并仅获取第一列数字以便进行平均。它们 但是,我什至无法打印数字,因为文本文件中还有双打之前的字符串,使我的 nextLong() 立即失败。 到目前为止我的代码如下:

import java.io.*;
import java.util.ArrayList;
import java.util.InputMismatchException;
import java.util.List;
import java.util.Scanner;
public class cancer{

public static void main(String[] args) throws InputMismatchException, FileNotFoundException {
    Scanner inFile = new Scanner(new FileReader("trainingDataset.txt"));
    inFile.useDelimiter(",");
    List<Float> arr=new ArrayList<Float>();
     while(inFile.hasNext()){
         float token1 = inFile.nextFloat();
            arr.add(token1);
            }
     inFile.close();
     Float[] tempsArray = arr.toArray(new Float[0]);
        for (Float s : tempsArray) {
          System.out.println(s);
        }
}

}

但我得到了这个输出:

Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Unknown Source)
    at java.util.Scanner.next(Unknown Source)
    at java.util.Scanner.nextFloat(Unknown Source)
    at cancer.main(cancer.java:13)

我知道我收到这个错误是因为双打之前的字符串。我只需要得到数字,这样我就可以对它们进行平均,但我不知道如何做。请帮忙!

这是文本文件: [trainingDataset.txt] http://txt.do/5w3em

您的文件看起来像 CSV(逗号分隔值)文件。您可以执行以下操作:

  1. 从文件中删除注释(那些以“//”开头的行)。
  2. 尝试使用任何 CSV 解析器(例如: https://commons.apache.org/proper/commons-csv/apidocs/org/apache/commons/csv/CSVParser.html).

只忽略第一个值不是数字的行。即,将每一行作为字符串而不是浮点数读取,然后尝试将该行转换为浮点数。如果由于数字格式异常而失败,请忽略该行并移至下一行。