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

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

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

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()

é 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

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.

[/code]