• 简单错误记录


    描述

    开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。

    处理: 

    1、 记录最多8条错误记录,循环记录,对相同的错误记录(净文件名称和行号完全匹配)只记录一条,错误计数增加;

    2、 超过16个字符的文件名称,只记录文件的最后有效16个字符;

    3、 输入的文件可能带路径,记录文件名称不能带路径。

    知识点 字符串
    运行时间限制 0M
    内存限制 0
    输入

    一行或多行字符串。每行包括带路径文件名称,行号,以空格隔开。

    如:E:V1R2productfpgadrive.c   1325

    输出

    将所有的记录统计并将结果输出,格式:文件名 代码行数 数目,一个空格隔开,如:

     fpgadrive.c 1325 1

    样例输入 E:V1R2productfpgadrive.c 1325
    样例输出 fpgadrive.c 1325 1
    package com.oj;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Scanner;
    
    
    public class TestOj {
    	private static String findError(String str){
    		String[] data = str.split("\\");
    		String[] use = data[data.length-1].split(" ");
    		
    		String last = data[data.length-1];
    		StringBuilder sb = new StringBuilder();
    		boolean flag = false;
    		for(int i = 0;i < last.length(); i++){
    			if(last.charAt(i)==' '){
    				flag = true;
    				continue;
    			}
    			if(flag)
    				sb.append(last.charAt(i));
    		}
    		
    		//System.out.println("hehe "+sb.toString());
    		String fileName = use[0].length()>16 ? use[0].substring(use[0].length()-16, use[0].length()):use[0];
    		String key = fileName+" "+sb.toString();
    		return key;
    	}
    	public static void main(String[] args) {
    		ArrayList<String> list = new ArrayList<String>();
    		Scanner in = new Scanner(System.in);
    		Map<String,Integer> errorMap = new HashMap<String,Integer>();
    		while(in.hasNext()){
    			String input = in.nextLine();
    			String key = findError(input);
    			if(errorMap.containsKey(key)){
    				String tempvalue = String.valueOf(errorMap.get(key));
    				errorMap.put(key, errorMap.get(key)+1);
    				String temp = key+" "+tempvalue; 
    				int pos = list.indexOf(temp);
    				list.set(pos, key+" "+String.valueOf(errorMap.get(key)));
    			}else{
    				if(list.size()==8)
    					list.remove(0);
    				errorMap.put(key, 1);
    				String temp = key+" 1";
    				list.add(temp);
    			}
    			
    		}
    		
    		for(String show:list){
    			System.out.println(show);
    		}
    	}
    }
    

      

    态度决定高度,细节决定成败,
  • 相关阅读:
    c++虚继承
    linux常用命令大全
    数据库三大范式最通俗解释
    PG数据库空间大小及数据库对象占用空间大小
    Oracle表分区详解
    Excel数据导入PG库,字符串正则表达式
    Oracle 执行计划
    ASP.NET MVC5框架揭秘 学习笔记01
    .NET简单学习
    蓝桥杯_算法训练_ALGO10_集合运算
  • 原文地址:https://www.cnblogs.com/lxk2010012997/p/5341129.html
Copyright © 2020-2023  润新知