-2

我正在开发一个程序,该程序需要将导入的文件放入 arraylist 并将其拆分为如下所示:

00000000    100 80  100 20  20  40  50
12345687    98  67  88  20  19  37  39
89763465    67  79  90  18  16  35  44

我想将第一个数字读为一个列表,依此类推。

public void studentData() throws IOException {
    Scanner scanner = new Scanner(System.in);

    ArrayList<String> list = new ArrayList<String>();
    System.out.println("Enter a file name: ");
    String filename = scanner.nextLine().trim();

    filename.equalsIgnoreCase(filename);
    File f = new File(filename);
    Scanner file = new Scanner(f);
    String fileText = file.nextLine();

    while (file.hasNext()){
        list.add(file.next());
    }
    file.close();

它完全没有打印出来。我会很感激积极的反馈。谢谢!

4

2 回答 2

0

你的代码正在运行,

几分钟 :

如果您的文件不是以\n 然后删除

 String fileText = file.nextLine();

并添加:

for (String string : list) {
            System.out.println(string);
        }

最后,输出您的值。

于 2013-09-20T20:40:44.130 回答
0

我想将第一个数字读为一个列表,依此类推。

您可以将每一行数字存储在您定义的列表中,如下所示:

    Scanner scanner = new Scanner(System.in);

    ArrayList<ArrayList<String>> list = new ArrayList<ArrayList<String>>();
    System.out.println("Enter a file name: ");
    String filename = scanner.nextLine().trim();

    filename.equalsIgnoreCase(filename); // dose't do anything?!!!!
    File f = new File(filename);
    Scanner file = new Scanner(f);
    //String fileText = file.nextLine(); this line removed the first line of txt

    while (file.hasNext()) {
        list.add(new ArrayList(Arrays.asList(file.nextLine().replaceAll("\\D+",",").split(",")))); // this line is what you need
    }
    file.close();

我希望这是你的需要

于 2013-09-20T21:22:09.913 回答