
Java编程题:简单错误记录(LinkedHashMap)
读取输入:使用 处理文件路径:将路径分割,提取文件名,并截取最后16个字符。 记录错误:使用 处理重复记录:检查是否存在相同的记录,若有则计数增加,否则新记录。 输出结果:输出最后8条记录,每条格式为“文件名 行号 计数”。
发布日期:2021-05-08 06:39:02
浏览次数:29
分类:精选文章
本文共 1546 字,大约阅读时间需要 5 分钟。
import java.util.LinkedHashMap;import java.util.Map;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); MaperrorMap = new LinkedHashMap<>(); while (sc.hasNext()) { String line = sc.next(); int lineNumber = sc.nextInt(); // 分割文件路径 String[] filePathParts = line.split("\\\\"); String fileName = filePathParts[filePathParts.length - 1]; // 截取文件名 if (fileName.length() > 16) { fileName = fileName.substring(fileName.length() - 16); } // 生成唯一的记录键 String recordKey = fileName + " " + lineNumber; // 更新错误记录 if (errorMap.containsKey(recordKey)) { errorMap.put(recordKey, errorMap.get(recordKey) + 1); } else { errorMap.put(recordKey, 1); } } // 输出最近的8条记录 int count = 0; for (String record : errorMap.keySet()) { count++; if (count > errorMap.size() - 8) { System.out.println(record + " " + errorMap.get(record)); } } }}
代码解释
Scanner
读取输入数据,每行包含文件路径和行号。LinkedHashMap
存储错误记录,确保记录顺序。技术细节
- 路径处理:使用
split("\\\\")
分割路径,确保正确获取文件名。 - 文件名截取:使用
substring
确保文件名不超过16个字符。 - 记录唯一性:通过键(文件名+行号)实现记录唯一性。
- 输出顺序:使用
LinkedHashMap
保证输出顺序,确保最新记录先输出。
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年04月16日 23时32分07秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
LaTeX介绍-ChatGPT4o作答
2025-04-04
LaTeX伪代码编辑
2025-04-04
latex小红心
2025-04-04
Latex相关文章
2025-04-04
Launcher3无图标问题
2025-04-04
Laurent级数与奇点分析
2025-04-04
layer.msg is not a function
2025-04-04
Layout Team
2025-04-04
layout_weight 的解释及使用
2025-04-04
layui 表单元素
2025-04-04
layui 表单提交不执行ajax的坑
2025-04-04
LayUI02之动态树
2025-04-04
layui上传文件、图片
2025-04-04
layui中如何让多个控件在一行显示
2025-04-04
layui中的table模块中的基础参数应用
2025-04-04
LayUI之CRUD
2025-04-04
LayUI之动态选项卡Tab&iframe使用
2025-04-04
LayUI动态树 案例
2025-04-04
layui图标使用和自定义矢量库图标
2025-04-04
layui数据表格自定义每页条数limit设置
2025-04-04