Erro com charAt() no textField

6 respostas Resolvido
java
K

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

6 Respostas

G
Solucao aceita

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

K

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
K

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

R
seuTexto.substring(string.length() - 1));
K

entendi a sua lógica ! Obrigado!

F

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

Criado 29 de março de 2021
Ultima resposta 29 de mar. de 2021
Respostas 6
Participantes 4