题解 | #简单错误记录#

简单错误记录

https://www.nowcoder.com/practice/2baa6aba39214d6ea91a2e03dff3fbeb

public class Main {
    public static void main(String[] arge) throws Exception {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        String str;
        LinkedHashMap<String,Integer> linkedHashMap = new LinkedHashMap();

        //判断输入的第一行内容是否为null
        while ((str = bf.readLine()) != null) {
            //将每行的内容以空格切割,第一部分为带有路径的文件名,第二部分为行号
            String[] help = str.split(" ");
            String fileNameWithPaths = help[0];
            String lineNum = help[1];

            String[] fileNameWithPath = fileNameWithPaths.split("\\\\");
            String fileName = fileNameWithPath[fileNameWithPath.length - 1];

            if (fileName.length() > 16) {
                //获取文件名后面16位的信息
                fileName = fileName.substring(fileName.length() - 16);
            }

            String key = fileName + " " + lineNum;
            //getOrDefault () 方法 用于在给定键元素存在时获取与给定键元素关联的值,
            //否则在没有与给定键关联的先前值时获取给定键元素的默认值。
            linkedHashMap.put(key, linkedHashMap.getOrDefault(key, 0) + 1);

        }

        Set set = linkedHashMap.keySet();
        int count = 0;
        for(Object obj: set){
            count++;
            if(count > linkedHashMap.size() - 8){
                System.out.println((String)obj + " " + linkedHashMap.get(obj));
            }
        }

        bf.close();
    }
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务