【发布时间】:2017-11-07 15:22:11
【问题描述】:
我有一个名为SalesData.txt 的文件,其中包含一家零售店连续数周每天的销售额。文件中的每一行包含七个数字,它们是一周的每日销售额。数字用逗号分隔。以下是文件中的示例:
1245.67,1490.07,1679.87,2371.46,1783.92,1461.99,2059.77
2541.36,2965.88,1965.32,1845.23,7021.11,9652.74,1469.36
2513.45,1963.22,1568.35,1966.35,1893.25,1025.36,1128.36
我已将 String 转换为 Double 并尝试计算:
- 每周总销售额
- 每周平均日销售额
- 所有周的总销售额
- 平均每周销售额
我的问题是 Java 如何将第一行检测为第 1 周,将第二行检测为第 2 周等。并计算数量。下面是语法:
import java.io.*;
import java.util.*;
import java.lang.*;
public class Q1
{
public static void main (String [] args) throws IOException, NumberFormatException
{
//Open the text file
File file = new File("SalesData.txt");
Scanner inputFile = new Scanner (file);
//Read the text file
while (inputFile.hasNext())
{
String weekly_Sale = inputFile.nextLine();
String value = weekly_Sale;
//Split the text by ","
StringTokenizer strtk = new StringTokenizer(value, ",");
//Define array list
ArrayList<String> numList = new ArrayList<String> ();
while (strtk.hasMoreTokens ())
{
numList.add(strtk.nextToken());
}
//Change the data type from String to Double
for (String item:numList)
{
Double result = Double.parseDouble(item);
//System.out.println(result);
}
weekly(result);
}
//Close the text file
inputFile.close();
}
// not sure how to detect the week number
public static void weekly(String numList)
{
for (int i=0; i<numList.size; i++)
{
System.out.println(numList.get(i));
}
}
}
【问题讨论】:
-
有什么问题?如果您逐行阅读,则周将由
\n分隔,因此您将在 while 循环的每次迭代中再处理一周。不知道你问什么。 -
每一行代表一周,那么如何从文件中获取周数?
-
while循环中的计数器如何在您每次读取一行时递增? -
@BonnieWong 好吧,你可以用计数器来计算你的行数:
int counter = 0在 while 循环之前,counter++;在你的循环中。然后counter+1也将是您当前工作的周数。 -
将读取的每一行传递到一个列表中。列表中每一行的索引将代表星期。