题解 | #简单错误记录#
简单错误记录
https://www.nowcoder.com/practice/2baa6aba39214d6ea91a2e03dff3fbeb
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); LinkedHashMap<String, Integer> linkedHashMap = new LinkedHashMap<>(); while (sc.hasNext()) { String next = sc.next(); String number = sc.next(); String[] split = next.split("\\\\"); int begin = split[split.length - 1].length() > 16 ? split[split.length - 1].length() - 16 : 0; String substring = split[split.length - 1].substring(begin); StringBuilder sb = new StringBuilder(); //把文件名和编号合在一起,方便直接判断是否为同一个记录 sb.append(substring).append(number); if (linkedHashMap.containsKey(sb.toString())) { linkedHashMap.put(sb.toString(), linkedHashMap.get(sb.toString()) + 1); } else { linkedHashMap.put(sb.toString(), 1); } } //begin为最后8个记录的起始位置 int begin = linkedHashMap.size() > 8 ? linkedHashMap.size() - 8 :0; Set<Map.Entry<String, Integer>> entrySet = linkedHashMap.entrySet(); for (Map.Entry<String, Integer> entry : entrySet) { if (begin > 0){ begin--; continue; } String fileName = entry.getKey().replaceAll("[0-9]", ""); String number = entry.getKey().replaceAll("[a-z]", ""); System.out.println(fileName + " " + number + " " + entry.getValue()); } } }