题解 | #简单错误记录#
简单错误记录
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)); } } }