Duvida como testar indexOf com valor - 1

2 respostas
P

Olá estou tentando comparar -1 comforme abaixo mas me da erro
ele entra no if e não tem o texto certo na variavel porque ???

abs

String variavel ="TEste somente"

if (variavel.indexOf("certo")!=-1 )
    variavel=variavel.substring(0,variavel.indexOf("certo") ) );

25/02/2009 16:00:06 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet default threw exception
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
	at java.lang.String.substring(Unknown Source)

2 Respostas

T
  1. Regra número um: não economize variáveis, nem chavinhas.
    Elas são boas, até para você poder debugar seus programas.
  2. Não entendi muito bem o que você quer fazer. Você quer pegar desde o começo até a posição onde você encontrou a palavra (ou seja, se a variável contivesse “absolutamente certo, cara” você quer pegar o valor "absolutamente ")? Se for isso, está certo.
String variavel ="TEste somente"  ; // não economize pontos-e-vírgulas
 int posicao = variavel.indexOf ("certo"); // não economize variáveis
 if (posicao != -1) { // não economize chavinhas
    variavel = variavel.substring (0, posicao);
 } 
 // não economize paciência
M

Por algum motivo seu ‘if’ está sendo ignorado e a linha 4 está sendo executada causando esse erro. Tente usar chaves no ‘if’.

Criado 25 de fevereiro de 2009
Ultima resposta 25 de fev. de 2009
Respostas 2
Participantes 3