java - 如何从包含 double 和字符串的文本文件中打印 double ?

标签 java arrays parsing double

我正在尝试获取下面的文本文件并仅获取第一列数字以便求平均值。但是,我什至无法打印数字,因为文本文件中还有 double 之前的字符串,使我的 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)

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

这是文本文件: [训练数据集.txt] http://txt.do/5w3em

最佳答案

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

关于java - 如何从包含 double 和字符串的文本文件中打印 double ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36584124/

相关文章:

arrays - 如何快速将随机 UIColor 与颜色数组中的颜色进行比较?

javascript - 如何解析数组以删除键,使用 javascript 仅返回值

java - 如何初始化在 Java 中创建的变量?

java - 如果抽象方法在所有类中执行相同的工作,我们是否必须在 UML 中重新键入该抽象方法?

c++ - 如何限制未知数组大小的循环大小

algorithm - 您可以使用什么算法来查找字符串中的重复短语?

c++ - 如何存储多次插件解析的函数表达式?

java - 如何通过鼠标移动检测 JLabel 中的单击? (如 JButton)?

java - 更改 Firebase 数据时 ListView 不会更新

php - MySQL 相当于 pg_fetch_all()