DiyanTonchev

Srabsko

Oct 24th, 2015
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.00 KB | None | 0 0
  1. package AdvancedCSharp_11Oct_2015;
  2.  
  3. import java.util.LinkedHashMap;
  4. import java.util.Scanner;
  5. import java.util.regex.Matcher;
  6. import java.util.regex.Pattern;
  7.  
  8. public class _04SrabskoUnleashed {
  9. public static void main(String[] args) {
  10. Scanner inputScanner = new Scanner(System.in);
  11.  
  12. LinkedHashMap<String, LinkedHashMap<String, Integer>> srabskoStatistics = new LinkedHashMap<>();
  13. String inputLine = inputScanner.nextLine();
  14. while (!inputLine.equals("End")) {
  15.  
  16. Pattern srabskoPattern = Pattern.compile("([\\w\\s]+)\\s@([a-zA-z\\s]+)\\s(\\d+)\\s(\\d+)");
  17. Matcher srabskoMatcher = srabskoPattern.matcher(inputLine);
  18. if (srabskoMatcher.find()) {
  19. String venue = srabskoMatcher.group(2);
  20. String singer = srabskoMatcher.group(1);
  21. int ticketPrice = Integer.parseInt(srabskoMatcher.group(3));
  22. int ticketCount = Integer.parseInt(srabskoMatcher.group(4));
  23.  
  24. if (!srabskoStatistics.containsKey(venue)) {
  25. srabskoStatistics.put(venue, new LinkedHashMap<>());
  26. }
  27.  
  28. if (!srabskoStatistics.get(venue).containsKey(singer)) {
  29. srabskoStatistics.get(venue).put(singer, ticketCount * ticketPrice);
  30. } else {
  31. int oldValue = srabskoStatistics.get(venue).get(singer);
  32. srabskoStatistics.get(venue).put(singer, oldValue + ticketCount * ticketPrice);
  33. }
  34. }
  35.  
  36. inputLine = inputScanner.nextLine();
  37. }
  38.  
  39. for (String venue : srabskoStatistics.keySet()) {
  40. System.out.printf("%s%n", venue);
  41. srabskoStatistics.get(venue)
  42. .entrySet()
  43. .stream()
  44. .sorted((k1, k2) -> k2.getValue().compareTo(k1.getValue()))
  45. .forEach((k1) -> System.out.printf("# %s -> %d%n", k1.getKey(), k1.getValue()));
  46. }
  47. }
  48. }
Advertisement
Add Comment
Please, Sign In to add comment