import java.util.regex.Matcher;
import java.util.regex.Pattern;

final class Acronym {

    private final String acronym;

    Acronym(String phrase) {
        acronym = generateAcronym(phrase);
    }

    String get() {
        return acronym;
    }

    private String generateAcronym(String phrase){
        final Pattern BREAK_WORDS = Pattern.compile("[A-Z]+[a-z]*|[a-z]+");
        final Matcher matcher = BREAK_WORDS.matcher(phrase);
        final StringBuilder stringBuilder = new StringBuilder();
        while (matcher.find()){
            stringBuilder.append(matcher.group().charAt(0));
        }
        return stringBuilder.toString().toUpperCase();
    }

}

import java.util.Arrays;
import java.util.stream.Collectors;

final class Acronym {

    private final String acronym;

    Acronym(String phrase) {
        acronym = generateAcronym(phrase);
    }

    String get() {
        return acronym;
    }

    private String generateAcronym(String phrase) {
        return Arrays.stream(phrase.split("[^a-zA-Z]"))
                .filter(word -> !word.isEmpty()) // Remove empty strings from the result of phrase.split
                .map(word -> word.substring(0, 1)) // Get the first character of each word
                .collect(Collectors.joining()) // Concatenate the characters
                .toUpperCase();
    }

}

Simplify model answer