Advertisement
vaseto_v

Untitled

Mar 26th, 2016
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.55 KB | None | 0 0
  1. package com.company;
  2.  
  3.  
  4. import java.util.*;
  5. import java.util.regex.Matcher;
  6. import java.util.regex.Pattern;
  7.  
  8. public class Events {
  9.     public static void main(String[] args) {
  10.         Scanner scanner = new Scanner(System.in);
  11.         int num = Integer.parseInt(scanner.nextLine());
  12.  
  13.         Pattern pattern = Pattern.compile("^\\s*#([a-zA-Z]+)\\s*:\\s*@\\s*([a-zA-Z]+)\\s*(\\d+)\\s*:(\\d+)$");
  14.  
  15.         TreeMap<String,TreeMap<String, List<String>>> events = new TreeMap<>();
  16.  
  17.         for (int i = 0; i < num ; i++) {
  18.             String inputLine = scanner.nextLine();
  19.             Matcher matcher = pattern.matcher(inputLine);
  20.             while (matcher.find()){
  21.                 String person = matcher.group(1);
  22.                 String place = matcher.group(2);
  23.                 String hour = "";
  24.                 String minutes = "";
  25.                 String time = "";
  26.                 if (Integer.parseInt(matcher.group(3)) <= 23 && Integer.parseInt(matcher.group(3)) >= 0){
  27.                     hour = matcher.group(3);
  28.                 }
  29.  
  30.                 if (Integer.parseInt(matcher.group(4)) <= 59 && Integer.parseInt(matcher.group(4)) >= 0){
  31.                     minutes = matcher.group(4);
  32.                 }
  33.  
  34.                 if (!hour.equals("") && !minutes.equals("")){
  35.                     time = String.format("%s:%s", hour, minutes);
  36.  
  37.                     if (!events.containsKey(place)){
  38.                         events.put(place, new TreeMap<>());
  39.                     }
  40.                     if (!events.get(place).containsKey(person)){
  41.                         events.get(place).put(person, new LinkedList<>());
  42.                     }
  43.  
  44.                     events.get(place).get(person).add(time);
  45.                 }
  46.  
  47.  
  48.             }
  49.         }
  50.  
  51.         String[] places = scanner.nextLine().split(",");
  52.         Arrays.sort(places);
  53.  
  54.         int counter = 1;
  55.         for (String place : places) {
  56.             if (events.containsKey(place)){
  57.                 System.out.printf("%s:", place);
  58.                 System.out.println();
  59.  
  60.                 for (Map.Entry<String, TreeMap<String, List<String>>> event : events.entrySet()) {
  61.                    event.getValue().entrySet().stream().forEach(entry -> {
  62.                        entry.getValue().sort((e1, e2) -> e1.compareTo(e2));
  63.  
  64.                        System.out.printf("%d. %s -> %s", counter, entry.getKey(), String.join(", ", entry.getValue()));
  65.                        System.out.println();
  66.  
  67.                    });
  68.                 }
  69.                 }
  70.  
  71.             }
  72.         }
  73.  
  74.  
  75.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement