Advertisement
DiyanTonchev

Srabsko1

Oct 24th, 2015
310
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.  
  11. Scanner inputScanner = new Scanner(System.in);
  12.  
  13. LinkedHashMap<String, LinkedHashMap<String, Integer>> srabskoStatistics = new LinkedHashMap<>();
  14. String inputLine = inputScanner.nextLine();
  15.  
  16. while (!inputLine.equals("End")) {
  17.  
  18. Pattern srabskoPattern = Pattern.compile("([\\w\\s]+)\\s@([a-zA-z\\s]+)\\s(\\d+)\\s(\\d+)");
  19. Matcher srabskoMatcher = srabskoPattern.matcher(inputLine);
  20. if (srabskoMatcher.find()) {
  21. String venue = srabskoMatcher.group(2);
  22. String singer = srabskoMatcher.group(1);
  23. int ticketPrice = Integer.parseInt(srabskoMatcher.group(3));
  24. int ticketCount = Integer.parseInt(srabskoMatcher.group(4));
  25.  
  26. if (!srabskoStatistics.containsKey(venue)) {
  27. srabskoStatistics.put(venue, new LinkedHashMap<>());
  28. }
  29.  
  30. if (!srabskoStatistics.get(venue).containsKey(singer)) {
  31. srabskoStatistics.get(venue).put(singer, ticketCount * ticketPrice);
  32. } else {
  33. int oldValue = srabskoStatistics.get(venue).get(singer);
  34. srabskoStatistics.get(venue).put(singer, oldValue + ticketCount * ticketPrice);
  35. }
  36. }
  37.  
  38. inputLine = inputScanner.nextLine();
  39. }
  40.  
  41. for (String venue : srabskoStatistics.keySet()) {
  42. System.out.printf("%s%n", venue);
  43. srabskoStatistics.get(venue)
  44. .entrySet()
  45. .stream()
  46. .sorted((k1, k2) -> k2.getValue().compareTo(k1.getValue()))
  47. .forEach(pair -> System.out.printf("# %s -> %d%n", pair.getKey(), pair.getValue()));
  48. }
  49. }
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement