Erro com charAt() no textField

OLá! Estou com um erro simples , onde o charAt() não está funcionando!

Código:

	System.out.println(	tfN5.getText().charAt(1)); //Deu erro

   Poderia dizer -me porque não funcionou?

A mensagem de erro:

Exception in thread "AWT-EventQueue-0" java.lang.StringIndexOutOfBoundsException: String index out of range: 1

Esse erro dá quando você tenta acessar uma possição que é nula, provavelmente o char na posição 1 no caso ai não existe.

Exemplo:

ABC
Meu .charAt(1) me retornaria B
A
Meu .charAt(1) retornaria o erro que deu para você.

Quando trabalhar com posições sempre lembre de tratar elas e certificar que não vão ser nulas, um if(length >= 1) resolveria

1 curtida

Agora eu entendi! Voçê deve começar a contar os caracteres de 0 em diante. Eu estava contando a partir do 1.
Olha , agora deu certo :slight_smile:

Meu exemplo arrumado:

System.out.println(	tfN5.getText().charAt(0)); //Deu certo
			//imprimiu 5
1 curtida

Vc não sabe algum outro método da class String , que lê somente o último caracter ?

 seuTexto.substring(string.length() - 1)); 
1 curtida

entendi a sua lógica ! Obrigado!

Lê isso aqui: https://www.devmedia.com.br/string-em-java-entendendo-e-utilizando-essa-classe/25503