使用map和list组合保存结果集,再石使用截取组装出参
import java.util.*; public class Main{ public static void main(String [] args){ getErrorLog(); } public static void getErrorLog(){ Scanner scan = new Scanner(System.in); Map<String,Integer> map = new HashMap<>(); List<String> list = new ArrayList<>(); while(scan.hasNext()){ String str = scan.nextLine(); // 获取最后一个斜杠后的数据 String item = str.substring(str.lastIndexOf("\\")+1); // 与当前统计进行比较,统计数量 if(null == map || null == map.get(item)){ map.put(item, 1); list.add(item); }else{ map.put(item, map.get(item) + 1); } } // 输出 int len = 0; if(list.size() >= 8 ){ len = list.size() - 8; } for(int i = len; i < list.size(); i++){ String temp = list.get(i); // 提取文件名称 String [] str = temp.split(" "); String ret = str[0]; // 判断文件名称是否大于16 if(ret.length() > 16){ ret = ret.substring(ret.length()-16); } // 组装出参 ret = ret + " " + str[1]; ret = ret + " " + map.get(temp); System.out.println(ret); } } }