Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package exams.retakeApril;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.Collections;
- import java.util.Map;
- import java.util.TreeMap;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- public class P02_WormIpsum {
- public static void main(String[] args) throws IOException {
- BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
- String input = "";
- //String regex = "^([A-Z][^.]*)([.])$";
- String regex = "^([A-Z][^.]*)([.])$";
- Pattern pattern = Pattern.compile(regex);
- while (true) {
- input = reader.readLine();
- if ("Worm Ipsum".equals(input)) break;
- Matcher matcher = pattern.matcher(input);
- if (matcher.find()) {
- char repeatLetter = 0;
- String[] tokens = input.split("\\s+");
- for (int i = 0; i < tokens.length; i++) {
- if (tokens[i].endsWith(".")) {
- tokens[i] = tokens[i].replaceAll("\\.", "");
- }
- Map<Character, Integer> map = new TreeMap<>();
- for (int j = 0; j < tokens[i].length(); j++) {
- char letter = tokens[i].charAt(j);
- if (!map.containsKey(letter)) {
- map.put(letter, 1);
- } else {
- map.put(letter, map.get(letter) + 1);
- }
- }
- int maxValueInMap = Collections.max(map.values());
- for (Map.Entry<Character, Integer> entry : map.entrySet()) {
- if (maxValueInMap > 1) {
- if (entry.getValue() == maxValueInMap) {
- repeatLetter = entry.getKey();
- tokens[i] = repeatString(repeatLetter, tokens[i].length());
- }
- }
- }
- }
- System.out.printf("%s.%n", String.join(" ", tokens));
- }
- }
- }
- public static String repeatString(char letter, int counter) {
- String result = "";
- for (int i = 0; i < counter; i++) {
- result += letter;
- }
- return result;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment