Java.lang.StringIndexOutOfBoundsException: String index OUT OF RANGE problemas!

4 respostas
E

pessoal! estou fazendo uma pesquisa binaria, e toda vez que tento colocar no campo de busca uma palavra com mais de 4 caracteres me deparo com o seguinte erro:

java.lang.StringIndexOutOfBoundsException: String index out of range: 5

quando coloco ate 4, funciona perfeitamente! no caso desse erro, coloquei com 5!
alguem sabe alguma solução? é problema de logica? obrigado

while (item != null) {

if (item.getPalavra().substring(0,palavra.length()).equals(palavra)) {

saida += item.getPalavra() + “\n;

}

item = item.getProx();

}

return saida;

lembrando que a variavel palavra, é a palavra que esta sendo procurada

4 Respostas

E

lembrnado que palavras de busca com menos de 4 caracteres, funcionam perfeitamente tambemm!
ninguem nunca teve esse tipo de problema?
obrigado

Naruffy

Esse erro acontece porque vc está passando um indice que não existe para o substring, provalvelmente o palavra.length() é maior que o item.getPalavra().length()

E

é verdade!
mas é meio impossivel
eu estou fazendo a busca em uma lista encadeada simples, gravada na memoria
e tem por exemplo a palavra escola, se eu buscar “esco” ele acha, digitei “escol” ele ja da o erro

F

O erro ocorre não na ‘Escola’ e sim em uma palavra que não possui mais de 4 caracter, ou seja, pelo menos uma palavra na lista não possui o tamanho maior que o informado em substring(). Você tem que fazer algo parecido com isto:

[quote]
IF $V{usuarioRecibo}.length() > 25 THEN

$V{usuarioRecibo}.substring(0,25) 

ELSE

$V{usuarioRecibo}
END IF
Em resumo, testar primeiro se a string é maior que o desejado, se for, aplique a substring, senão, utilize a string.
Criado 19 de novembro de 2008
Ultima resposta 10 de abr. de 2010
Respostas 4
Participantes 3