You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按指定格式打印CSV文件中的课程与对应成绩数据

Java读取CSV按指定格式输出解决方案

现有代码问题梳理

  • 语法层面:
    • 类定义语法错误,类名后不能加括号
    • class是Java保留关键字,不能用作变量名
    • 未处理IO异常、未导入相关依赖包
  • 逻辑层面:
    • 错误将所有科目、所有成绩分别拼接为整串,没有按「科目-成绩」成对处理
    • 没有逐行输出每组对应关系,也没有处理科目首字母大写的需求
    • 行末多余的逗号会导致split后出现空字符串,需要跳过空值

修正后可运行代码

import java.io.FileReader;
import java.util.Scanner;

// 类名遵循大驼峰规范,类定义后不加括号
public class ReadCsv {
    public static void main(String[] args) throws Exception {
        String path = "file.csv";
        Scanner in = new Scanner(new FileReader(path));
        while (in.hasNextLine()) {
            String line = in.nextLine();
            String[] tokens = line.split(",");
            // 步长为2遍历,每两个元素为一组:下标偶数是科目,奇数是对应成绩
            for (int i = 0; i < tokens.length - 1; i += 2) {
                String subject = tokens[i].trim();
                String grade = tokens[i+1].trim();
                // 跳过空值(处理行末多余逗号导致的空元素)
                if (subject.isEmpty() || grade.isEmpty()) {
                    continue;
                }
                // 科目首字母大写,其余保持原样
                String formattedSubject = subject.substring(0, 1).toUpperCase() + subject.substring(1);
                // 按要求格式输出
                System.out.println(formattedSubject + " - " + grade);
            }
        }
        in.close();
    }
}

输出效果

运行后会完全匹配要求的格式:

History - A
Math - B
Chemistry - A
Geo - C
Art - B
Literature - A
History - C
Physics - A

内容的提问来源于stack exchange,提问作者Pandawithwings __

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 14:15:02