Procura em um array de strings

1 resposta
E

Olá pessoal, boa noite! (Espero estar postando minha dúvida no local certo)
Preciso criar um pequeno aplicativo para J2ME seguindo os princípios de CRUD para a próxima aula de quinta feira que terei. No caso, eu decidi criar um programa que grava o nome de um livro e o seu ISBN.
Já fiz funcionar a parte de criação de novas entradas e listagem dos itens, mas ainda preciso adicionar uma função para realizar search e outra para deletar entradas.

Aí vem o problema. Como sou iniciante, fiz tudo da forma mais simples possível utlizando duas arrays de strings e um contador para cada vez que algo é adicionado. O problema é que não faço idéia de qual a melhor forma de procurar algo nas arrays, e se é possível ignorar o Lowcase e Uppercase do que for procurado. Basta só comparar a string procurada com a da array? E para “deletar” algo, basta com que eu substitua o valor da string por um valor vazio? Bom, vou postar o código aqui. Grato pela atenção!

public void commandAction(Command command, Displayable displayable) { if (displayable == alert) { if (command == backCommand) { switchDisplayable(null, getFormPrincipal()); } } else if (displayable == formPrincipal) { if (command == cmdExibir) { getList().deleteAll(); for(int i = 0; i<=contador; i++){ if(nome[i]!=null){ getList().append(nome[i] + " - " + isbn[i], null); } } switchDisplayable(null, getList()); } else if (command == cmdInserir) { String nomeTemp = getTextFieldNome().getString(); String isbnTemp = getTextFieldISBN().getString(); if(nomeTemp.equals("")||isbnTemp.equals("")){ //Mensagem de erro na insercao getAlert().setString("Algum campo esta vazio!"); } else{ nome[contador] = nomeTemp; isbn[contador] = isbnTemp; contador++; //Gravacao com sucesso getAlert().setString("Livro registrado com sucesso na biblioteca!"); getTextFieldNome().setString(""); getTextFieldISBN().setString(""); } switchDisplayable(getAlert(), getFormPrincipal()); } else if (command == exitCommand) { exitMIDlet(); } } else if (displayable == list) { if (command == List.SELECT_COMMAND) { listAction(); } else if (command == backCommand1) { switchDisplayable(null, getFormPrincipal()); } } }

1 Resposta

Ruttmann

Bom dia E.Arias…

Deve fazer umas 3 semanas e tive que fazer um algoritmo para gerir uma biblioteca, como exercício de aula também, vou te repassar umas dicas abaixo:

“não faço idéia de qual a melhor forma de procurar algo nas arrays, e se é possível ignorar o Lowcase e Uppercase do que for procurado.”

Bem, nesse caso utilizei um for. Ficaria mais ou menos assim: Você recebe o nome do livro que o usuário deseja e varre a array usando um for, cada incremento da váriável de controle do for corresponde a uma posição do array.

O caso do Uppercase e Lowercase, você pode usar o equalsIgnoreCase, como no link a seguir: http://www.guj.com.br/java/113002-duvida-com-metodo-equalsignorecase

E para deletar algo, eu setava a posição da array que eu desejava apagar como null. Pra cadastrar novos livros também, eu usei um for que varria a string procurando uma posição null, para nela cadastrar o livro.

Essa é a base para o negócio, se precisar de uns exemplos me peça, que procuro e coloco aqui meu exercício pra gente comparar.

:wink:

Criado 24 de abril de 2012
Ultima resposta 24 de abr. de 2012
Respostas 1
Participantes 2