gpt4 book ai didi

JAVA 读取数值数据并存储到数组列表

转载 作者:行者123 更新时间:2023-11-30 03:15:47 25 4
gpt4 key购买 nike

我有一个文本文件,其中包含以下内容,我正在尝试将其读入 ArrayList:

% There are 600 students. Each row is the set of desired courses (numbered from 1 to 18) for that student. 

9. 13. 3. 7. 5. 8. 6. 12. 14. 11. 18. 15.
12. 1. 4. 16. 8. 5. 14. 3. 2. 6. 18. 9.
4. 16. 9. 13. 17. 6. 8. 14. 3. 11. 15. 10.
4. 16. 9. 13. 14. 11. 2. 15. 5. 10. 17. 8.
4. 16. 12. 1. 18. 14. 9. 17. 8. 5. 6. 11.
4. 16. 12. 1. 8. 5. 14. 11. 18. 10. 15. 2.
9. 13. 12. 1. 11. 10. 18. 8. 4. 2. 5. 15.
9. 13. 3. 7. 14. 11. 10. 4. 15. 18. 12. 17.
12. 1. 3. 7. 5. 10. 11. 6. 18. 14. 8. 9.
9. 13. 12. 1. 18. 10. 17. 3. 6. 14. 8. 15.

下面是我的代码,但它没有读取任何内容:

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

public class SchedReader {

public static void main(String[] args){

//reading
try{

File homedir = new File(System.getProperty("user.home"));
File fileToRead = new File(homedir, "workspace/Project1/sched.txt");

List<Integer> integers = new ArrayList<Integer>();

Scanner fileScanner = new Scanner(fileToRead);

fileScanner.nextLine();

fileScanner.useDelimiter(". ");

while (fileScanner.hasNextInt())
{
integers.add(fileScanner.nextInt());
}

System.out.println("Arraylist contains: " + integers.toString());
}
catch (Exception e){
System.out.println(e.toString());
}


}
}

这是我的输出:

Arraylist contains: []

有人可以建议我如何更改我的代码以便能够将所有数据加载到 ArrayList 中吗?

编辑

以下是我如何更改代码以推进每一行:

    fileScanner.useDelimiter("[\\. \\n]+");

while (fileScanner.hasNextInt())
{
integers.add(fileScanner.nextInt());
fileScanner.hasNextLine();
fileScanner.nextLine();

}

但是,它仍然只输出到一行。

最佳答案

您要阅读的内容前有 2 行。跳过 2 行。

fileScanner.nextLine();
fileScanner.nextLine();

您尝试使用空格 ' ' 和点 '.' 字符作为分隔符,但它被解释为正则表达式,这意味着分隔符必须是任意字符后跟一个空格。由于数字之间有多个空格,因此没有下一个 int 标记。

使用正确的正则表达式作为分隔符有助于:

fileScanner.useDelimiter("[\\. ]+");  // One or more of . and space

关于JAVA 读取数值数据并存储到数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32662734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com