Método Pesquisar

6 respostas
progJava

Estou utilizando um método pesquisar mas estou com dificuldades .Mando pesquisar umas palavras ele pesquisa quando mando pesquisar outras palavras ele falha constando o seginte erro:

erro :java.lang.StringIndexOutOfBoundsException:String Index out of range 6

Gostaria de saber o que ocasione esse erro ,e se alguém tivesse outro método para efetuar pesquisa me mandasse
algum exemplo.

Código:

public void pesquisa_digitacao() { try { teste.resultset.first(); String igual = "n"; int tamanho_pesquisa = tf_pesquisar.getText().length(); while(igual.equals("n")) { String pesquisado = teste.resultset.getString("cli_nome").substring(0,(tamanho_pesquisa)); if (pesquisado.equals(tf_pesquisar.getText())) { igual = "s"; } else teste.resultset.next(); } // nas linhas abaxo, mostra_conteudo_tabela(); codigo.setText(teste.resultset.getString("cli_codigo"));//Essas duas linhas é necesária nome.setText(teste.resultset.getString("cli_nome")); // mostrar_dados(); //cb_pesquisa.setSelectedItem(tf_nome.getText()); } catch(Exception erro) { JOptionPane.showMessageDialog(null, "Não conseguiu localizar via digitação, erro = "+erro); } // TODO add your handling code here: }

6 Respostas

Vini_Fernandes

Cara, tente o seguinte:

String pesquisado = teste.resultset.getString("cli_nome").substring(0, tamanho_pesquisa - 1);

ate

progJava

Porque -1 ?

Mesmo assim consta erro resultset não esta posicionado corretamente

String pesquisado = teste.resultset.getString("cli_nome").substring(0, tamanho_pesquisa - 1);
Vini_Fernandes

Entao cara, suponha a String nome = “vinicius”; O o tamanho dela eh 8, mas o indice dela varia de 0 ate 7. Entao se voce fizer nome.substring(0, nome.length()); voce tera uma excecao lancada, para contornar esse problema vc tem que fazer nome.substring(0, nome.length()-1);

Ate mais

rodrigoamado
public void pesquisadigitacao()

{

try

{

resultset.first();

boolean achou = false;

int tamanho_pesquisa = tf_idCurso.getText().length();

while(!achou)

{

String pesquisado = resultset.getString<a>b</a>.[/b]substring(0,(tamanho_pesquisa)).toUpperCase();

if (pesquisado.equals(tf_idCurso.getText().toUpperCase()))

{

achou = true;

}

else

resultset.next();

}

// nas linhas abaixo, mostra_conteudo_tabela();

tf_idCurso.setText(resultset.getString<a>b</a>[/b]);//Essas duas linhas é necesária

mostra_conteudo_nos_campos();
}
catch(Exception erro)
{
     JOptionPane.showMessageDialog(null, "Não conseguiu localizar via digitação, erro = "+erro);
}

}
}

ai ta certinho, não pode ser nome, tem que ser o texto pesquisado.

A

Também estou com esse mesmo problema. Percebi que este erro acontece quando na linha
String pesquisado = teste.resultset.getString(“cli_nome”).substring(0,(tamanho_pesquisa));
quando o teste.resultset.getString(“cli_nome”) é uma string menor que a do parâmetro tamanho_pesquisa. Tentei colocar uma condição para ele executar essa linha apenas quando o teste.resultset.getString(“cli_nome”) for igual ou maior que o tamanho_pesquisa se não ele executa teste.resultset.next(); mas mesmo assim não deu certo. Acho que o problema está na substring.

F

Alisson_Leal:
Também estou com esse mesmo problema. Percebi que este erro acontece quando na linha
String pesquisado = teste.resultset.getString(“cli_nome”).substring(0,(tamanho_pesquisa));
quando o teste.resultset.getString(“cli_nome”) é uma string menor que a do parâmetro tamanho_pesquisa. Tentei colocar uma condição para ele executar essa linha apenas quando o teste.resultset.getString(“cli_nome”) for igual ou maior que o tamanho_pesquisa se não ele executa teste.resultset.next(); mas mesmo assim não deu certo. Acho que o problema está na substring.

Claro cara. Imagina que tamanho_pesquisa = 10 e teste.resultset.getString(“cli_nome”) = “João” = 4 caracteres. Isso vai lançar a excessão de StringIndexOutOfBounds.

Criado 17 de julho de 2009
Ultima resposta 1 de nov. de 2012
Respostas 6
Participantes 5