读取文本文件,然后将其重新组织为数组

时间:2015-01-10 09:08:03

标签: java arrays string printf

基本上我需要做的是:

阅读如下文本文件:

[Student ID], [Student Name], Asg 1, 10, Asg 2, 10, Midterm, 40, Final, 40
01234567, Timture Choi, 99.5, 97, 100.0, 99.0
02345678, Elaine Tam, 89.5, 88.5, 99.0, 100

并像这样展示(计算排名和平均值):

ID Name Asg 1 Asg 2 Midterm Final Overall Rank

01234567 Timture Choi 99.5 97.0 100.0 99.0 99.3 1

02345678 
Elaine Tam 89.5 88.5 99.0 100.0 97.4 2

 Average: 94.5 92.75 99.5 99.5 98.3

使用printf()功能

现在这是我到目前为止所做的:

import java.io.*;
import java.util.Scanner;

class AssignmentGrades {
    public static void main(String args[]) throws Exception {
        Scanner filename = new Scanner(System.in);
        String fn = filename.nextLine(); //scannig the file name
        System.out.println("Enter your name of file : ");

        FileReader fr = new FileReader(fn+".txt");

        BufferedReader br =  new BufferedReader (fr);
        String list;

        while((list = br.readLine()) !=null) {
            System.out.println(list);
        }
        fr.close();
    }
}

所以我可以询问用户该文件的名称,然后阅读并打印。

现在......我被困住了。我想我可能需要将它放入数组并拆分?

String firstrow = br.readLine();
String[] firstrow = firstrow.split(", ");
是这样的?呃我已经被困在这里一个多小时了

我真的需要帮助!!我感谢你的关注!! (本周我开始学习java)

2 个答案:

答案 0 :(得分:0)

分割刚刚从文件中读取的输入行有两种方法

  1. 使用String对象的 split()方法返回一个数组。阅读有关拆分here的更多信息。

  2. StringTokenizer类 - 此类可用于根据一组分隔符将输入字符串分成单独的标记。 Here是一个很好的入门教程。

  3. 您应该可以使用google获取更多示例:)

    如果要从String解析整数。检查this

答案 1 :(得分:0)

这里我将列存储为String的数组,并将记录集存储为Stringwhile数组。在split循环中,如果列集尚未初始化(第一次迭代),我使用split初始化它。否则,我会将ArrayList添加到java.util.ArrayList。导入 String[] columns = null; ArrayList<String[]> values = new ArrayList<String[]>(); String list; while((list = br.readLine()) !=null) { if (columns != null) { columns = list.split(", "); } else { values.add(list.split(", ")); } } fr.close();

{{1}}