Como EU faria: Passo 1 - Ao invés de usar System.out.println(), colocaria isso tudo em uma função que retorna int (pontuação) Passo 2 - Escreveria testes unitários usando a biblioteca JUnit do Java para ter certeza que o comportamento dessa função está de acordo com o que eu espero (incluindo cenários alternativos) Passo 3 - Começaria a refatorar começando pelos statements de dentro do if.

Por exemplo: letras[i] == 'Q' || letras[i] == 'Z' o que a letra Q e Z tem em comum? Você consegue ver que esse padrão(isso || aquilo) se repete muito? Tente procurar padrões no que você tem e refatore métodos para isso. Dica: Se apoie nos testes unitários do Passo 2 para garantir que tudo continua funcionando Passo 3 - Depois eu partiria para limpar esses if/else if.

essencialmente no final gostaria de ter um método mais ou menos assim:

public static void main(String[] args) {
        String palavra = "teste";
        String palavraUpper = palavra.toUpperCase();	
        char[] letras = palavraUpper.toCharArray();
        int pontuação = getPontuacaoDasLetras(letras)
}

public static int getPontuacaoDasLetras(char[] letras) {
        int pontuacao = 0;
        for (int i = 0; i < letras.length; i++) {
            pontuacao += getPontuacaoDaLetra(letras[i]);
        }
        return pontuacao;
}

getPontuacaoDaLetra() poderia ser um simples método que olha um mapa hardcoded. sendo assim mapa['A'] retornaria int 2 e assim por diante. Só precisaria mapear todas as letras e a pontuação correspondente

Exemplo completo do descrito acima:

import org.junit.Test;
import static org.junit.Assert.assertEquals;

public class TabNewsExercise1Test {

    @Test
    public void test1() {
        TabNewsExercise1 ex = new TabNewsExercise1();
        assertEquals(5, ex.doExercise("teste"));
    }

    @Test
    public void test2() {
        TabNewsExercise1 ex = new TabNewsExercise1();
        assertEquals(14, ex.doExercise("Iuri"));
    }

    @Test
    public void test3() {
        TabNewsExercise1 ex = new TabNewsExercise1();
        assertEquals(16, ex.doExercise("tabnews"));
    }

}

public class TabNewsExercise1 {

    public static int doExercise(final String input) {
        int score = 0;

        for (char letter : input.toUpperCase().toCharArray()) {
            score += Letters.valueOf(Character.toString(letter)).getLetterScore();
        }
        return score;
    }

}

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;
    }
}