Advertisement
IrinaIgnatova

RegEx - Race-Correct

Jul 25th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.38 KB | None | 0 0
  1.  Map<String, Integer> players = new LinkedHashMap<>();
  2.         String[] input = console.nextLine().split(", ");
  3.  
  4.         for (int i = 0; i < input.length; i++) {
  5.             players.putIfAbsent(input[i], 0);
  6.         }
  7.  
  8.         String line = console.nextLine();
  9.  
  10.         while (!line.equals("end of race")) {
  11.             String name = "";
  12.             int result = 0;
  13.  
  14.             Pattern pattern = Pattern.compile("[A-Za-z]+");
  15.             Matcher matcher = pattern.matcher(line);
  16.             while (matcher.find()) {
  17.                 name += matcher.group();
  18.             }
  19.  
  20.             Pattern patternDigit = Pattern.compile("\\d");
  21.             Matcher matcherDigit = patternDigit.matcher(line);
  22.             while (matcherDigit.find()) {
  23.                 result += Integer.parseInt(matcherDigit.group());
  24.             }
  25.            
  26.             if (players.containsKey(name)) {
  27.                 players.put(name, players.get(name) + result);
  28.             }
  29.  
  30.             line = console.nextLine();
  31.         }
  32.         List<String> names = new LinkedList<>();
  33.         players.entrySet().stream().sorted(Map.Entry.<String, Integer>comparingByValue().reversed()).limit(3).forEach(p -> names.add(p.getKey()));
  34.  
  35.         System.out.printf("1st place: %s\n" +
  36.                 "2nd place: %s\n" +
  37.                 "3rd place: %s\n", names.get(0), names.get(1), names.get(2));
  38.     }
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement