题解 | #简单错误记录#

简单错误记录

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

  • 使用一个arraylist存储顺序
  • 使用一个hashmap存储计数
  • 使用正则去除目录和超长文件名
  • 输出时,注意输入不足8个的情况
  • 注意终止输入的处理
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;

/**
 * class com.sloera.nowcoder
 * user sloera
 * date 2022/2/24
 */
public class Main {
  public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    // 注意 hasNext 和 hasNextLine 的区别
    final ArrayList<String> result = new ArrayList<>();
    final HashMap<String, Integer> count = new HashMap<>();
    while (in.hasNextLine()) { // 注意 while 处理多个 case
      final String s = in.nextLine();
      if (!"".equals(s)) {
        handle(result, count,s);
      } else {
        break;
      }
    }
    // 倒序输出8个
    for (int i = Math.max(result.size()-8, 0); i < result.size(); i++) {
      System.out.println(result.get(i) + " " + count.get(result.get(i)));
    }
  }

  private static void handle(ArrayList<String> result, HashMap<String, Integer> count, String s) {
    final String[] split = s.split("\\s+");
    // 替换目录路径 及 前16位
    String name  = split[0].replaceAll(".*\\\\", "").replaceAll("^.*?(.{16})$", "$1") + " " + split[1];
    if (count.containsKey(name)) {
      count.put(name, count.get(name) + 1);
    } else {
      result.add(name);
      count.put(name, 1);
    };
  }

}
全部评论

相关推荐

11-15 17:19
湖南大学 Java
成果成果成果果:这是哪个公司的hr,这么离谱吗,我没见过用性别卡技术岗的,身边女性同学拿大厂offer的比比皆是
点赞 评论 收藏
分享
Bug压路:老哥看得出来你是想多展示一些项目,但好像一般最多两个就够了😂页数一般一页,多的也就2页;这些项目应该是比较同质化的,和评论区其他大佬一样,我也觉得应该展示一些最拿手的(质量>数量)😁😁😁专业技能部分也可以稍微精简一些
点赞 评论 收藏
分享
评论
1
2
分享
牛客网
牛客企业服务