RGAlex

O1. WinningTicket / RegularExpressions - More Exercise

Mar 24th, 2021
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.06 KB | None | 0 0
  1. package RegularExpressions.MoreExercises;
  2.  
  3. import java.util.Scanner;
  4. import java.util.regex.Matcher;
  5. import java.util.regex.Pattern;
  6.  
  7. public class O1WinningTicket {
  8.     public static void main(String[] args) {
  9.         Scanner scanner = new Scanner(System.in);
  10.         String[] input = scanner.nextLine().trim().split(",\\s+");
  11.         Pattern pattern = Pattern.compile("([$]{6,10}|[@]{6,10}|[#]{6,10}|[\\^]{6,10})");
  12.         for (String s : input) {
  13.             if (s.trim().length() != 20) {
  14.                 System.out.println("invalid ticket");
  15.             } else {
  16.                 String left = s.trim().substring(0, 10);
  17.                 String right = s.trim().substring(10, 20);
  18.                 Matcher matcher = pattern.matcher(left);
  19.                 if (matcher.find()) {
  20.                     String matchLeft = matcher.group(1);
  21.                     char winType = matchLeft.charAt(0);
  22.                     if (matchLeft.length() == 10 && right.contains(matchLeft)) {
  23.                         System.out.println("ticket \"" + s.trim() + "\" - 10" + winType + " Jackpot!");
  24.                     } else  {
  25.                         matcher = pattern.matcher(right);
  26.                         if (matcher.find()){
  27.                             String matchRight = matcher.group(1);
  28.                             if (matchLeft.contains(matchRight) || matchRight.contains(matchLeft)){
  29.                                 int winDigit = Math.min(matchRight.length(),matchLeft.length());
  30.                                 System.out.println("ticket \"" + s.trim() + "\" - " + winDigit + winType);
  31.                             }else{
  32.                                 System.out.println("ticket \"" + s.trim() + "\" - no match");
  33.                             }
  34.                         }else{
  35.                             System.out.println("ticket \"" + s.trim() + "\" - no match");
  36.                         }
  37.                     }
  38.                 } else {
  39.                     System.out.println("ticket \"" + s.trim() + "\" - no match");
  40.                 }
  41.             }
  42.         }
  43.     }
  44. }
  45.  
Advertisement
Add Comment
Please, Sign In to add comment