Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.LinkedHashMap;
- import java.util.Scanner;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- import static java.util.stream.Collectors.joining;
- public class Demo {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- String messege = scanner.nextLine();
- Pattern pattern = Pattern.compile("(@|#)(?<first>[A-Za-z]{3,})(\\1){2}(?<second>[A-Za-z]{3,})(\\1)");
- Matcher matcher = pattern.matcher(messege);
- LinkedHashMap<String,String> mirror = new LinkedHashMap<>();
- int pairCount = 0;
- while(matcher.find()){
- pairCount++;
- String first = matcher.group("first");
- String second = matcher.group("second");
- StringBuilder reverse = new StringBuilder(first);
- String compare = reverse.reverse().toString();
- if (compare.equals(second)){
- mirror.put(first, second);
- }
- }
- if (pairCount > 0){
- System.out.printf("%d word pairs found!%n", pairCount);
- }else {
- System.out.println("No word pairs found!");
- }
- if (mirror.size() > 0){
- System.out.println("The mirror words are:");
- String s = mirror.entrySet()
- .stream()
- .map(e -> e.getKey()+" <=> "+ e.getValue())
- .collect(joining(", "));
- System.out.println(s);
- }else {
- System.out.println("No mirror words!");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement