Primeiro, sugiro que siga as convenções de nomenclatura da linguagem e mude o nome da variável Letra
para letra
(com “L” minúsculo). Claro que funciona se não mudar, mas a ideia das convenções é padronizar certas características, o que facilita a leitura por terceiros, gera menos carga cognitiva (assumindo que está sendo lido por alguém já acostumado às convenções) e só deveria ser quebrado se houver uma boa justificativa (o que não é o caso aqui).
Na verdade, letra
não é um bom nome, porque essa variável, por ser uma string, pode ter várias letras. Pode parecer um detalhe besta, mas dar nomes melhores ajuda na hora de programar.
Dito isso, vou ser um pouco pedante: você quer as 3 últimas letras ou os 3 últimos caracteres (independente deles serem letras ou não)? Afinal, a string poderia ser algo como "12!?"
e os 3 últimos caracteres seriam 2!?
, que não são letras. Se for para pegar as 3 últimas letras, a resposta seria uma string vazia, já que a string "12!?"
não tem nenhuma letra.
Sei que estou sendo chato, mas essa distinção é importante. Definir bem o problema é o primeiro passo para fazer um programa correto. Sem uma definição clara, fica difícil saber se o programa está certo, pois se nem sabemos o que ele deveria fazer, como saberemos se está certo?
Enfim, se for “os 3 últimos caracteres”, sem verificar se é letra, poderia ser como já sugerido acima: se o tamanho da string é menor ou igual a 3, então toda a string já contém “os 3 últimos (ou menos)”. Senão, use substring
para pegar os 3 últimos:
String texto = // ler do Scanner, etc...
String tresUltimos;
if (texto.length() > 3) {
tresUltimos = texto.substring(texto.length() - 3);
} else {
tresUltimos = texto;
}
System.out.println(tresUltimos);
Agora se a ideia é pegar “as 3 últimas letras”, aí você tem que fazer um loop do fim pro começo, testar se o caractere é letra e caso seja, adicionar na lista dos 3 últimos:
String texto = "abc a 123 b x";
StringBuilder tresUltimos = new StringBuilder();
// percorre a string do fim para o início, até conseguir 3 letras, ou percorrer todos os caracteres
for (int i = texto.length() - 1; i >= 0 && tresUltimos.length() < 3; i--) {
char c = texto.charAt(i);
if (Character.isLetter(c)) {
tresUltimos.insert(0, c);
}
}
System.out.println(tresUltimos.toString()); // abx