我如何从包含双打和字符串的文本文件中打印双打?
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(逗号分隔值)文件。您可以执行以下操作:
- 从文件中删除注释(那些以“//”开头的行)。
- 尝试使用任何 CSV 解析器(例如:
https://commons.apache.org/proper/commons-csv/apidocs/org/apache/commons/csv/CSVParser.html).
只忽略第一个值不是数字的行。即,将每一行作为字符串而不是浮点数读取,然后尝试将该行转换为浮点数。如果由于数字格式异常而失败,请忽略该行并移至下一行。
我正在尝试获取下面的文本文件并仅获取第一列数字以便进行平均。它们 但是,我什至无法打印数字,因为文本文件中还有双打之前的字符串,使我的 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(逗号分隔值)文件。您可以执行以下操作:
- 从文件中删除注释(那些以“//”开头的行)。
- 尝试使用任何 CSV 解析器(例如: https://commons.apache.org/proper/commons-csv/apidocs/org/apache/commons/csv/CSVParser.html).
只忽略第一个值不是数字的行。即,将每一行作为字符串而不是浮点数读取,然后尝试将该行转换为浮点数。如果由于数字格式异常而失败,请忽略该行并移至下一行。