Advertisement
SPDG57

Message Encrypter - Regex, quantifiers, alternative namedgrp

Dec 1st, 2019
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.49 KB | None | 0 0
  1. package com.company;
  2.  
  3. import javafx.util.Pair;
  4.  
  5. import javax.xml.crypto.dsig.keyinfo.KeyValue;
  6. import java.lang.reflect.Array;
  7. import java.security.KeyStore;
  8. import java.text.Collator;
  9. import java.text.DecimalFormat;
  10. import java.util.*;
  11. import java.util.function.Predicate;
  12. import java.util.regex.Matcher;
  13. import java.util.regex.Pattern;
  14. import java.util.stream.Collector;
  15. import java.util.stream.Collectors;
  16.  
  17.  
  18. public class Main {
  19.  
  20.     public static void main(String[] args) {
  21.         Scanner scanner = new Scanner(System.in);
  22.  
  23.         int n = Integer.parseInt(scanner.nextLine());
  24.         final String REGEX = "(\\*|@)(?<tag>[A-Z][a-z]{2,})\\1: \\[(?<f>[A-Z]|[a-z])\\]\\|\\[(?<s>[A-Z]|[a-z])\\]\\|\\[(?<t>[A-Z]|[a-z])\\]\\|$";
  25.         Pattern pattern = Pattern.compile(REGEX);
  26.  
  27.         for (int i = 0; i < n; i++) {
  28.             String message = scanner.nextLine();
  29.             Matcher matcher = pattern.matcher(message);
  30.             if(matcher.find()){
  31.                 String tag = matcher.group("tag");
  32.                 String first = matcher.group("f");
  33.                 String second = matcher.group("s");
  34.                 String third = matcher.group("t");
  35.  
  36.                 System.out.printf(tag+ ": " + "%d %d %d\n",
  37.                         (int) first.charAt(0),
  38.                         (int) second.charAt(0),
  39.                         (int) third.charAt(0));
  40.             }else{
  41.                 System.out.println("Valid message not found!");
  42.             }
  43.         }
  44.     }
  45.  
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement