gpt4 book ai didi

java - 如何只读取文件中的 double 值

转载 作者:行者123 更新时间:2023-11-29 05:21:01 27 4
gpt4 key购买 nike

我有这样一个文件

07/15/14: 19.33

07/15/14: 13.14

07/15/14: 21.20

07/15/14: 22.67

我需要一种方法来读取这些 double 值并打印出平均值。这就是数字的保存方式。

public void hourlyOverall() throws IOException
{
//construct the date to print into a file
java.sql.Date date=new java.sql.Date(time);
//set hourlyOverall variable
hourlyOverall=tips/hours+hourlyWage;
//construct the printwriter with a file writer in it.
//set the FileWriter append parameter too true so that the
//info is added onto the end of the file, and the file is
//not overwritten
PrintWriter editFile=new PrintWriter(new FileWriter("wage info",true));
editFile.printf("%tD: %.2f \n ", date, hourlyOverall);
editFile.close();
}

这就是我试图阅读它们的方式。

public double totalHourlyOverall() throws FileNotFoundException
{
Scanner fileScanner=new Scanner(fos);
while(fileScanner.hasNextDouble())
{
total+=fileScanner.nextDouble();
counter+=1;
}
fileScanner.close();
return overallHourly=total/counter;
}

虽然它没有获得 double 。我做错了什么?

编辑:

所以我现在得到一个数组越界异常。我的代码是这样的

public double totalHourlyOverall() throws FileNotFoundException

{
Scanner fileScanner=new Scanner(fos);
while(fileScanner.hasNextLine())
{
String str=fileScanner.nextLine();
String[] array=str.split(":");
total+=Double.parseDouble(array[1]);
counter+=1;
}
fileScanner.close();
return overallHourly=total/counter;
}

应该有一个数组[1],因为每一行都被分成两行,对吧?

最佳答案

有一种更简单的方法:读入每一行,并在行中的一个公共(public)标记处拆分。

我不会写出所有的代码,但这里有一种阅读整行代码的方法:

while(fileScanner.hasNextLine()) {
String line = fileScanner.nextLine();
String[] lineFragments = line.split(":");
// the date is in lineFragments[0]; the number is in lineFragments[1].
// I leave the rest as an exercise to the reader.
}

关于java - 如何只读取文件中的 double 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24750351/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com