Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.HashSet;
- import java.util.Scanner;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- public class myClass {
- public static void main(String[] args) {
- Scanner s = new Scanner(System.in);
- String text = s.nextLine();
- String pattern;
- while (!(pattern = s.nextLine()).equals("Print")) {
- pattern = formatPattern(pattern);
- Pattern p = Pattern.compile(pattern);
- Matcher m = p.matcher(text);
- while (m.find()) {
- String reversed = new StringBuilder(m.group(0)).reverse().toString();
- text = text.replace(m.group(0), reversed);
- }
- }
- System.out.println(text);
- }
- private static String formatPattern(String pattern) {
- StringBuilder sb = new StringBuilder();
- HashSet<Character> toEscape = new HashSet<>();
- char[] toEscapeArr = {'.', '^', '$', '*', '+', '?', '(', ')', '[', '{', '\\', '|'};
- for (char c : toEscapeArr) {
- toEscape.add(c);
- }
- for (int i = 0; i < pattern.length(); i++) {
- char c = pattern.charAt(i);
- if (c == '%') {
- sb.append("\\S*");
- } else if (toEscape.contains(c)) {
- sb.append('\\').append(c);
- } else {
- sb.append(c);
- }
- }
- return sb.toString();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement