Advertisement
meteor4o

JF-Exams-EmojiSumator

Aug 1st, 2019
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.17 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.util.Arrays;
  4. import java.util.LinkedList;
  5. import java.util.List;
  6. import java.util.Scanner;
  7. import java.util.regex.Matcher;
  8. import java.util.regex.Pattern;
  9.  
  10. public class EmojiSumator {
  11.     public static void main(String[] args) {
  12.         Scanner sc = new Scanner(System.in);
  13.  
  14.         String text = sc.nextLine();
  15.         int[] numbers = Arrays.stream(sc.nextLine().split(":"))
  16.                 .mapToInt(e -> Integer.parseInt(e))
  17.                 .toArray();
  18.  
  19. //        double[] nums = Arrays.stream(sc.nextLine().split("\\s+")).mapToDouble(Double::parseDouble).toArray();
  20.  
  21.         String regex = "(?<=\\s):([a-z]{4,}):[?=\\s,.!?]";
  22.         String regex2 = "(?<=\\s)(:[a-z]{4,}:)[?=\\s,.!?]";
  23.  
  24.         Pattern pattern = Pattern.compile(regex);
  25.         Pattern patternColons = Pattern.compile(regex2);
  26.  
  27.         Matcher matcher = pattern.matcher(text);
  28.  
  29.         int emojiTotalValue = 0;
  30.         int emojiValue = 0;
  31.         List<Integer> emojiCodes = new LinkedList<>();
  32.         List<String> emojis = new LinkedList<>();
  33.         List<String> emojisColons = new LinkedList<>();
  34.  
  35.         while (matcher.find()) {
  36.             int length = matcher.group(1).length();
  37.             emojis.add(matcher.group(1));
  38.             for (int i = 0; i < length; i++) {
  39.                 int value = matcher.group(1).charAt(i);
  40.                 emojiTotalValue += value;
  41.                 emojiValue += value;
  42.             }
  43.             emojiCodes.add(emojiValue);
  44.             emojiValue = 0;
  45.  
  46.  
  47.  //           matcher = pattern.matcher(text);
  48.         }
  49.         matcher = patternColons.matcher(text);
  50.         while (matcher.find()) {
  51.             emojisColons.add(matcher.group(1));
  52.         }
  53.  
  54.         int sum = 0;
  55.         for (int number : numbers) {
  56.             sum += number;
  57.  
  58.         }
  59.  
  60.         if (emojiCodes.contains(sum)) {
  61.             emojiTotalValue *= 2;
  62.         }
  63.  
  64.         if (!emojisColons.isEmpty()) {
  65.             System.out.print("Emojis found: ");
  66.             System.out.println(String.join(", ", emojisColons));
  67.         }
  68.  //       System.out.println();
  69.         System.out.printf("Total Emoji Power: %d", emojiTotalValue);
  70.  
  71.  
  72.     }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement