fork download
  1. import java.util.Arrays;
  2. import java.util.Collections;
  3. import java.util.List;
  4. import java.util.Map;
  5. import java.util.Set;
  6. import java.util.TreeMap;
  7. import java.util.TreeSet;
  8.  
  9. class ContaLetras {
  10.  
  11. public static void main(String[] args) {
  12. Map<String, Integer> ocorrencias;
  13.  
  14. ocorrencias = contar("Vê se tira notas boas!");
  15. ocorrencias.forEach((chave, valor) -> System.out.print(chave + ":" + valor + " "));
  16. }
  17.  
  18. private static Map<String, Integer> contar(String frase) {
  19. Map<String, Integer> resultado = new TreeMap<>(); // TreeMap para manter o Map ordenado pelas chaves
  20. List<String> ocorrencias;
  21. Set<String> letras;
  22.  
  23. ocorrencias = Arrays.asList(frase.replace(" ", "").split("")); // Transforma a frase em uma lista que facilitará a contagem
  24. letras = new TreeSet<>(ocorrencias); // Pega as letras sem duplicidade
  25.  
  26. // Percorre o array de letras sem repetição contando as ocorrências
  27. letras.forEach((String letra) -> {
  28. resultado.put(letra, Collections.frequency(ocorrencias, letra));
  29. });
  30.  
  31. return resultado;
  32. }
  33. }
  34.  
Success #stdin #stdout 0.13s 4386816KB
stdin
Standard input is empty
stdout
!:1 V:1 a:3 b:1 e:1 i:1 n:1 o:2 r:1 s:3 t:2 ê:1