Como usar o método Is.Letter [RESOLVIDO]

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:


image

Muito obrigado!

Conseguir entender super bem !