Java 如何将文本文件中的字符串元素添加到ArrayList中?

Java 如何将文本文件中的字符串元素添加到ArrayList中?,java,arraylist,text-files,arrays,Java,Arraylist,Text Files,Arrays,文本文件包含以逗号分隔的数字(例如458.581598.45…) 我想将文本文件中的整行添加到ArrayList中 以下是我目前的代码: // to calculate final output ArrayList<String> weeklySales = new ArrayList<String>(7); // week 1 sales while(file.hasNext()) { weeklySales.add(file.nextLine());

文本文件包含以逗号分隔的数字(例如458.581598.45…)

我想将文本文件中的整行添加到ArrayList中

以下是我目前的代码:

// to calculate final output
ArrayList<String> weeklySales = new ArrayList<String>(7);

// week 1 sales
while(file.hasNext()) {
    weeklySales.add(file.nextLine());
    System.out.println("I ran!");
}

System.out.println(weeklySales);
//计算最终输出
ArrayList weeklySales=新ArrayList(7);
//第一周销售
while(file.hasNext()){
add(file.nextLine());
System.out.println(“我跑了!”);
}
System.out.println(周刊);

编辑:对不起,我的问题不清楚。我的问题是,在运行这段代码之后,它会将整个文本文件的所有元素添加到数组中,但我只需要将1行添加到它自己的ArrayList中。因此,总的来说,我将拥有与文件中文本行数相同的数组列表。

这是代码,您可以使用:

String line = "458.58, 1598.45";
String array[] = line.split(", ");
可以通过以下方式将字符串更改为双精度:

Double.valueOf(array[i]);
使用以下方法可以将数组更改为列表:

ArrayList<String> list = new ArrayList<>();
list.addAll(Arrays.asList(array));
ArrayList list=new ArrayList();
addAll(Arrays.asList(array));

我终于让它工作了。我意识到,处理单行和从文本文件中分离单个数字最方便的方法是使用StringTokenizer。这是完整的工作代码,您只需要名为“SalesData.txt”的文本文件,我的包含以下3行:

1245.671490.071679.872371.461783.921461.992059.77 2541.36,2965.88,1965.32,1845.23,7021.11,9652.74,1469.36 2513.451963.221568.351966.351893.251025.361128.36

此程序输出以下内容:
-每周总销售额
-每周的日平均值
-所有周的总销售额
-每周平均总数
-销售额最高的一周
-销售最低的一周

DecimalFormat formatter = new DecimalFormat("#0.00");

// create file object
File salesData = new File("SalesData.txt");

// open file
Scanner file  = new Scanner(salesData);

// declare 2 dimensional array 
double[][] weeklySales = new double[3][7];

// loop to initialize token
int row = 0;
while(file.hasNext()) {
// initialize token
String line = file.nextLine();
StringTokenizer tokens = new StringTokenizer(line, ",");

// fill columns and rows
int col = 0;
while(tokens.hasMoreTokens()) {
        // convert to double and assign to token
    weeklySales[row][col] = Double.parseDouble(tokens.nextToken());
    // move up 1 column
    col++;
    }
// move down 1 row
row++;
}

// calculate weekly sales
double week1Sales = 0, week2Sales = 0, week3Sales = 0;
for(int i = 0; i < 3; i++) {
    for(int j = 0; j < 5; j++) {
        double daily = weeklySales[i][j];
        if(i == 0)
            week1Sales += daily;
        else if(i == 1)
            week2Sales += daily;
        else if(i == 2)
            week3Sales += daily;
    }
}
// week 1 sales
System.out.println("Week 1 total sales: $" +formatter.format(week1Sales));
// week 2 sales
System.out.println("Week 1 total sales: $" +formatter.format(week2Sales));
// week 3 sales
System.out.println("Week 1 total sales: $" +formatter.format(week3Sales));

// average daily for week 1
System.out.println("Daily average for week 1: $" +formatter.format(week1Sales / 7));

// average daily for week 2
System.out.println("Daily average for week 2: $" +formatter.format(week2Sales / 7));

// average daily for week 3
System.out.println("Daily average for week 3: $" +formatter.format(week3Sales / 7));

// total for all weeks
double weeklyTotal = week1Sales + week2Sales + week3Sales;

System.out.println("Total sales of all the weeks: $" +formatter.format(weeklyTotal));

// average weekly sales
System.out.println("Average weekly total: $" + formatter.format(weeklyTotal / 3));

// week number with highest sales
if(week1Sales > week2Sales)
    if(week1Sales > week3Sales)
        System.out.println("The week with the highest sales is week 1.");
    else
        System.out.println("The week with the highest sales is week 3.");
else if(week2Sales > week3Sales)
    if(week2Sales > week1Sales)
        System.out.println("The week with the highest sales is week 2.");
    else
        System.out.println("The week with the highest sales is week 1.");
else
    System.out.println("The week with the highest sales is week 3.");

// week number with the lowest
if(!(week1Sales > week2Sales))
    if(!(week1Sales > week3Sales))
        System.out.println("The week with the lowest sales is week 1.");
    else
        System.out.println("The week with the lowest sales is week 3.");
else if(!(week2Sales > week3Sales))
    if(!(week2Sales > week1Sales))
        System.out.println("The week with the lowest sales is week 2.");
    else
        System.out.println("The week with the lowest sales is week 1.");
else
    System.out.println("The week with the lowest sales is week 3.");
DecimalFormat格式化程序=新的DecimalFormat(#0.00”);
//创建文件对象
File salesData=新文件(“salesData.txt”);
//打开文件
扫描仪文件=新扫描仪(salesData);
//声明二维数组
double[]weeklySales=新的double[3][7];
//循环以初始化令牌
int行=0;
while(file.hasNext()){
//初始化令牌
String line=file.nextLine();
StringTokenizer令牌=新的StringTokenizer(第,“,”行);
//填充列和行
int col=0;
while(tokens.hasMoreTokens()){
//转换为double并分配给token
weeklySales[row][col]=Double.parseDouble(tokens.nextToken());
//上移1列
col++;
}
//下移1行
行++;
}
//计算每周销售额
双周销售额=0,周销售额=0,周销售额=0;
对于(int i=0;i<3;i++){
对于(int j=0;j<5;j++){
每日双倍=每周销售[i][j];
如果(i==0)
周销售额+=每日;
else如果(i==1)
周销售额+=每日;
else如果(i==2)
周3销售额+=每日;
}
}
//第一周销售
System.out.println(“第1周总销售额:$”+formatter.format(Week1销售额));
//第2周销售
System.out.println(“第1周总销售额:$”+formatter.format(week2Sales));
//第3周销售
System.out.println(“第1周总销售额:$”+formatter.format(week3Sales));
//第1周平均每天
System.out.println(“第1周的日平均值:$”+formatter.format(week1Sales/7));
//第2周平均每天
System.out.println(“第2周的日平均值:$”+formatter.format(week2Sales/7));
//第3周平均每天
System.out.println(“第3周的日平均值:$”+formatter.format(week3Sales/7));
//所有星期的总数
双周累计=周1销售额+周2销售额+周3销售额;
System.out.println(“所有周的总销售额:$”+formatter.format(weeklyTotal));
//每周平均销售额
System.out.println(“平均每周总计:$”+formatter.format(weeklyTotal/3));
//销售最高的周数
如果(周1销售额>周2销售额)
如果(周1销售>周3销售)
System.out.println(“销售最高的一周是第1周”);
其他的
System.out.println(“销售最高的一周是第3周”);
else if(周2销售>周3销售)
如果(周销售>周销售)
System.out.println(“销售最高的一周是第2周”);
其他的
System.out.println(“销售最高的一周是第1周”);
其他的
System.out.println(“销售最高的一周是第3周”);
//周数最低
如果(!(周销售>周销售))
如果(!(周1销售>周3销售))
System.out.println(“销售最低的一周是第1周”);
其他的
System.out.println(“销售最低的一周是第3周”);
否则如果(!(周2销售>周3销售))
如果(!(周销售>周销售))
System.out.println(“销售最低的一周是第2周”);
其他的
System.out.println(“销售最低的一周是第1周”);
其他的
System.out.println(“销售最低的一周是第3周”);

您还没有问任何问题。请阅读常见问题解答。Edolsa,如果你找到了解决方案,你不妨将其标记为“答案”。它不允许我,我必须等待2个小时。嘿,感谢代码,这似乎可行,但问题是你演示了如何将其添加到数组中,但我想将元素添加到ArrayList中。将数组更改为列表已添加。