我有一個包含這樣的銷售數據的文件:如何組織數據以供其他對象使用?
2554.22,5321.12,323.29,8283.11,1923.26,6632.46,1104.42
.
.
.
n
所以文件可能包含ň行數。我需要使用Scanner對象讀取文件,並計算每天,每週以及給定日期或周內的平均銷售額。
到目前爲止,我設計這樣的:
數據類:
public class SalesData {
private float[] sales;
public SalesData(float[] sales) {
this.sales = sales;
}
public float getTotalSales() {
float totalSales = 0.0;
for(float sale : sales) {
totalSales += sale;
}
return totalSales;
}
public float getAverageSales() {
return getTotalSales/salesData.length;
}
}
我有我的SalesUtil類的麻煩
。我不知道如何從每一行獲取數據並將其存儲在數組中,以便我可以實例化我的SalesData類。我試圖使用ArrayList,但我迷路了。我不確定我是否會走上正確的道路。
任何提示,非常感謝。
public class SalesUtil {
public List<String> readSalesFile() {
List<String> salesAsString = new ArrayList<String>();
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter sales file name: ");
String salesFile = keyboard.nextLine();
try {
Scanner scanFile = new Scanner(new File(salesFile));
while(scanFile.hasNext()) {
salesAsString.add(scanFile.nextLine());
}
catch(FileNotFoundException fnfe) {
System.out.println("Invalid file name supplied, please try again.");
readSalesFile();
}
return salesAsString;
}
public List<Float> parseSalesFile(List<String> salesFile) {
List<Float> salesAsFloat = new ArrayList<Float>();
}
}
每行代表給定的一週。每列是本週的一天 –
行。然後確實將你的文件轉換成一個'List'是一個選項。根據您以後的需求,一個更復雜的結構可能會很有趣(例如,具有代表特定日期的銷售數據並參考當天的結構,因此您可以更輕鬆地計算統計數據,如「星期一的平均銷售額」等) ;我會更新我的答案並將其考慮在內,以便將其降至直接相關的信息,以便更清楚。 –
Gorkk