Boa dia, preciso fazer um trabalho e o professor pediu o seguinte: “Desenvolver um programa na linguagem Java, que lê uma linha de texto a ser informada pelo usuário e imprime uma tabela que indique o número de ocorrências de cada letra do alfabeto no texto, por exemplo, se informada a frase, usando os método is letter”. Porém, não conseguir colocar esse método e também o meu código fica repetindo o alfabeto. Alguém sabe o erro, era para executar até o Z maiúsculo só. ?
1 curtida
Tu tem que reiniciar a contagem quando houver a troca de letra. O método isLetter()
é estático, ou seja, é chamado pela classe Character
, como tu pode ver na documentação (Docs Oracle - Character Class). Exemplo (incluindo acentuados):
import java.util.Scanner;
public class ContarLetra {
public static void main(String[] args){
char[] letras;
short contador = 0;
String texto;
Scanner leitor = new Scanner(System.in);
System.out.print("Digite o texto: ");
texto = leitor.nextLine().toUpperCase();
letras = texto.toCharArray();
System.out.println("\nResultado:");
for(char letra = 'A'; letra <= 'Ú'; letra++){
for(short caractere = 0; caractere < letras.length; caractere++){
if(Character.isLetter(letras[caractere]) && letras[caractere] == letra)
contador++;
}
if(Character.isLetter(letra) && Character.isUpperCase(letra))
System.out.println(letra + " = " + contador);
contador = 0; //Reinicia a contagem quando muda de letra
}
leitor.close();
}
}
Rodando um teste:
Muito obrigado!
Conseguir entender super bem !