简单错误记录
2017-01-12 00:00
190 查看
题目描述
开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。 处理: 1、 记录最多8条错误记录,循环记录,对相同的错误记录(净文件名称和行号完全匹配)只记录一条,错误计数增加; 2、 超过16个字符的文件名称,只记录文件的最后有效16个字符; 3、 输入的文件可能带路径,记录文件名称不能带路径。
输入描述
一行或多行字符串。每行包括带路径文件名称,行号,以空格隔开。
输出描述
将所有的记录统计并将结果输出,格式:文件名 代码行数 数目,一个空格隔开,如:
输入例子
E:\V1R2\product\fpgadrive.c 1325
输出例子
fpgadrive.c 1325 1
算法实现
import java.util.ArrayList; import java.util.Scanner; /** * Declaration: All Rights Reserved !!! */ public class Main { private static class Error { private String name; private int line; private int count; @Override public String toString() { return name + " " + line + " " + count; } } public static void main(String[] args) { Scanner input = new Scanner(System.in); ArrayList<Error> errors = new ArrayList<>(); while (input.hasNext()) { String name = input.next(); int num = input.nextInt(); Error record = new Error(); name = name.substring(name.lastIndexOf("\\") + 1); if (name.length() > 16) { name = name.substring(name.length() - 16); } boolean flag = true; //重复检验 for (Error error : errors) { if (name.equals(error.name) && num == error.line) { error.count++; flag = false; } } //表示为新Record if (flag) { record.name = name; record.line = num; record.count = 1; errors.add(record); } } input.close(); //最多纪录8条错误纪录 int j = 0; if (errors.size() > 8){ j = errors.size() - 8; } for (; j < errors.size(); j++) { System.out.println(errors.get(j)); } } }
相关文章推荐
- 简单错误记录
- 错误简单记录分析1
- 【华为OJ】【069-简单错误记录】
- 华为2016校园招聘上机笔试题----简单错误记录
- 华为机试---简单错误记录
- 记录一个诡异而简单的错误
- 开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。
- 华为OJ 简单错误记录 (错误,不知道为什么,求大神指教)
- 华为2016校园招聘题----[编程题]简单错误记录(JAVA版)
- 简单错误记录
- 使用AlertDialog时遇到的一个小错误,简单记录下
- 华为16年机试(二):简单错误记录
- 华为OJ(简单错误记录)
- 华为2016年校园招聘上机笔试题(2)----简单错误记录
- OJ 系列之简单错误记录(转)
- HWOJ 简单错误记录
- 华为机试题2016(一) 简单错误记录
- 华为机试-简单错误记录
- [华为机试]简单错误记录
- 华为2016校园招聘:简单错误记录