java:使用扫描仪类读取文本文件并将信息存储在数组中

2024-04-22

我有一个包含学生成绩的文本文件,例如:

Kim $ 40 $ 45
Jack $ 35 $ 40

我试图从文本文件中读取这些数据,并使用扫描仪类将信息存储到数组列表中。任何人都可以指导我正确编写代码吗?

Code

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

public class ReadStudentsGrade {

public static void main(String[] args) throws IOException {

    ArrayList stuRec = new ArrayList();
    File file = new File("c:\\StudentGrade.txt");
    try {
        Scanner scanner = new Scanner(file).useDelimiter("$");

        while (scanner.hasNextLine())
        {
            String stuName = scanner.nextLine();
            int midTirmGrade = scanner.nextInt();
            int finalGrade = scanner.nextInt();
            System.out.println(stuName + " " + midTirmGrade + " " + finalGrade);
        }
    }
    catch (FileNotFoundException e)
    {
        e.printStackTrace();
    }
}

运行时错误:

Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Scanner.java:840)
    at java.util.Scanner.next(Scanner.java:1461)
    at java.util.Scanner.nextInt(Scanner.java:2091)
    at java.util.Scanner.nextInt(Scanner.java:2050)
    at writereadstudentsgrade.ReadStudentsGrade.main(ReadStudentsGrade.java:26)

Try useDelimiter(" \\$ |[\\r\\n]+");

        String stuName = scanner.next(); // not nextLine()!
        int midTirmGrade = scanner.nextInt();
        int finalGrade = scanner.nextInt();

你的问题是:

  • 你读错了全线获取学生姓名
  • $是需要转义的正则表达式元字符
  • 您需要同时提供行分隔符和字段分隔符
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java:使用扫描仪类读取文本文件并将信息存储在数组中 的相关文章

随机推荐