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