题解 | #简单错误记录#

简单错误记录

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

import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        Map<String, Integer> linkedHashMap = new LinkedHashMap<>();
        while(in.hasNextLine()){
            String input = in.nextLine();
            String[] path = input.split("\\\\");//按照\分割

            String[] last = path[path.length-1].split(" ");//将最后的数字和字母分割
            StringBuilder error1 = new StringBuilder(last[0].length()>16?last[0].substring(last[0].length()-16):last[0]);//删除超过16的字母
            String error = error1.append(" "+last[1]).toString();//拼接数字

            linkedHashMap.put(error, linkedHashMap.getOrDefault(error, 0)+1); //保持有插入顺序
        }
        int count=linkedHashMap.size()>8?linkedHashMap.size()-8:0;
        for(String key : linkedHashMap.keySet()){
            if(count-- > 0) continue; //跳过最先超过八个的
            System.out.println(key+" "+linkedHashMap.get(key));
        }
        
    }
}

全部评论

相关推荐

牛客34884196...:你期望薪资4-5k,那确实可以重生了,但很难在深圳活下去
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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