Executando verificação de segurança...
Em resposta a [Não disponível]
1

O que eu faria seria:

  • Extrair a pontuação de cada letra para um enum
  • Interar a cada letra buscando o valor da letra no enum

Dessa forma você consegue definir a responsabilidade da pontuação de cada letra pra esse enum tornando o código mais legível e claro. O código ficaria assim:

public class teste {

	public static void main(String[] args) {
		int pontuacao = 0;
		String palavra = "teste";
		String palavraUpper = palavra.toUpperCase();	
		for (char letter : palavraUpper.toCharArray()) {
			pontuacao += Letters.valueOf(Character.toString(letter)).getLetterScore();
		}
		System.out.println(pontuacao);
	}    
}

public enum Letters {
    A(1),
    B(3),
    C(3),
    D(2),
    E(1),
    F(4),
    G(2),
    H(4),
    I(5),
    J(8),
    K(5),
    L(1),
    M(3),
    N(5),
    O(1),
    P(3),
    Q(10),
    R(1),
    S(1),
    T(1),
    U(3),
    V(4),
    W(4),
    X(8),
    Y(4),
    Z(10);
    
    private final int score;

    private Letters(int letterScore) {
        this.score = letterScore;
    }

    int getLetterScore()  {
        return score;
    }
} 

Você poderia extrair o calculo da pontução por palavra pra uma outra função tambem.
PS: O valueOf do enum pode subir uma IllegalArgumentException, recomendo tratar a excessão nesse caso.
PS2: Não sei se coloquei as pontuações corretas em cada uma das letras xD

Carregando publicação patrocinada...