Passar para Hashtable

4 respostas
Y

amigos

como ficaria esse código abaixo usando Hashtable? eu tentei fazer, mas não consegui…

import java.io.*; 
 import java.util.StringTokenizer; 
 
 public class abc{ 
 
      public void Cadastrar()throws IOException{ 
 
            Biblioteca x = new Biblioteca(); 
            String dados; 
            dados = x.Ler(); 
            String vetor[] = new String[5]; 
            int c = 0; 
            BufferedReader ler = new BufferedReader( new 
                 InputStreamReader(System.in)); 
 
                System.out.println("\nDigite o Nome: "); 
                     vetor[0] = ler.readLine(); 
 
                     System.out.println("\nDigite o CPF: "); 
                     vetor[1] = ler.readLine(); 
                     
                     System.out.println("\nDigite o Endereço: "); 
                     vetor[2] = ler.readLine(); 
                     
                     System.out.println("\nDigite o Telefone: "); 
                     vetor[3] = ler.readLine(); 
                     
                     System.out.println("\nDigite o Nascimento: "); 
                     vetor[4] = ler.readLine(); 
 
                     dados += vetor[0] + ";" + vetor[1] + ";" + vetor[2] + ";" + vetor[3] + ";" + vetor[4]; 
 
    }

4 Respostas

S

creio q poderia ser assim:

...
Hashtable h = new Hashtable();
System.out.println("\nDigite o Nome: ");
h.put("nome", ler.readLine() );
 
System.out.println("\nDigite o CPF: ");
h.put("cpf", ler.readLine() );
                     
System.out.println("\nDigite o Endereço: ");
h.put("endereco",  ler.readLine() ); 
....

dados += h.get("nome")+ ";" + h.get("cpf") + ";" + h.get("endereco") ...
BrunoBastosPJ

o problemas nesse codigo é que se você tentar gravar mais de 1 nome ele substitui…

Y

olha só, alterei o programa e com esses dados que você passou, o programa compilou, só que tá dando um problema no “busca”

segue o código do programa:

import java.io.*; 
import java.util.StringTokenizer;
import java.util.Hashtable; 
 
 public class abc{ 
 
      public void Cadastrar()throws IOException{ 
 
            Biblioteca x = new Biblioteca(); 
            String dados; 
            dados = x.Ler(); 
            String vetor[] = new String[5]; 
            int c = 0; 
            BufferedReader ler = new BufferedReader( new 
                 InputStreamReader(System.in)); 
 
            Hashtable h = new Hashtable(); 
              System.out.println("\nDigite o Nome: "); 
                h.put("nome", ler.readLine() );   
              System.out.println("\nDigite o CPF: "); 
                h.put("cpf", ler.readLine() );                       
              System.out.println("\nDigite o Endereço: "); 
                h.put("endereco",  ler.readLine() ); 
              System.out.println("\nDigite o Telefone: "); 
                h.put("telefone",  ler.readLine() );
              System.out.println("\nDigite o Nascimento: "); 
                h.put("nascimento",  ler.readLine() );  

              dados += h.get("nome")+ ";" + h.get("cpf") + ";" + h.get("endereco") + h.get("telefone") + ";" + h.get("nascimento");
 
                     dados += vetor[0] + ";" + vetor[1] + ";" + vetor[2] + ";" + vetor[3] + ";" + vetor[4]; 
 
    } 
 
           public static void main (String args[]) throws IOException{ 
            Biblioteca x = new Biblioteca(); 
            BufferedReader ler = new BufferedReader( new InputStreamReader(System.in)); 
            int c; 
            String Nome[]; 
 
            do{ 
              c = x.menu_select(); 
              switch(c){ 
                case 1: x.Cadastrar(); 
                  break; 
                case 2: x.Listar(); 
                  break; 
           case 3: Nome = x.Buscar(); 
                        System.out.println("Nome: " + Nome[0] + "\nCPF: " + Nome[1] + "\nEndereco: " + Nome[2] + 
                             "\nTelefone: " + Nome[3] + "\nNascimento: " + Nome[4]); 
        break; 
                case 4: System.exit(0); 
              } 
            }while (c != 4); 
         } 
 
 
         public int menu_select() throws IOException{ 
            BufferedReader ler = new BufferedReader( new InputStreamReader(System.in)); 
            String c; 
            int a; 
 
            System.out.println("\n 1. Cadastrar"); 
            System.out.println(" 2. Listar"); 
            System.out.println(" 3. Buscar");
            System.out.println(" 4. Sair\n"); 
 
            do{ 
             System.out.print("Informe sua escolha: "); 
             c = ler.readLine(); 
             a = Integer.parseInt(c); 
            } while (a < 0 || a > 4); 
 
            return a; 
            } 
 
 
         public void Listar(){ 
            Biblioteca x = new Biblioteca(); 
 
            String V[] = x.AbrirArquivo(); 
 
            int c = 0, contador = 0; 
            System.out.println("Nome\tCPF\tEndereço\tCor\tNascimento"); 
            while (c < V.length){ 
 
             StringTokenizer capturador = new StringTokenizer(V[c],";"); 
             String leitorDados[] = {"","","","",""}; 
 
             while (capturador.hasMoreTokens()) { 
             leitorDados[contador]= capturador.nextToken(); 
             contador++; 
             } 
 
              System.out.println(leitorDados[0] + "\t" +  leitorDados[1] + "\t" + leitorDados[2] + "\t\t" + leitorDados[3] +"\t" + leitorDados[4]); 
             c++; 
             contador = 0; 
 
             } 
           } 
           
           
         public String[] Buscar() throws IOException{ 
            BufferedReader ler = new BufferedReader( new InputStreamReader(System.in)); 
            Biblioteca x = new Biblioteca(); 
 
            String V[] = x.AbrirArquivo(); 
            String V2[] = new String[5]; 
            String c; 
            int i = 0, contador = 0; 
 
            System.out.println("Informe o nome para a busca: "); 
            c = ler.readLine(); 
 
            while (i < V.length){ 
 
             StringTokenizer capturador = new StringTokenizer(V[i],";"); 
             String leitorDados[] = {"","","","",""}; 
 
             while (capturador.hasMoreTokens()) { 
             leitorDados[contador]= capturador.nextToken(); 
             contador++; 
             } 
               if( leitorDados[0].equalsIgnoreCase(c)){ 
                 V2 = leitorDados; 
                 break; 
               } 
             i++; 
             } 
           return V2; 
          } 
 
         }

quando eu digito o nome para busca aprece o seguinte:

Nome: null
Cpf: null
Endereço: null
Telefone: null
Nascimento: null

BrunoBastosPJ

tenta usar equals ao inves de equalsIgnoreCase

tenta dar um trim() na string que você pega do arquivo

tenta imprimir a string em tempo de execução para ver se elas são iguais mesmo

Criado 5 de julho de 2006
Ultima resposta 6 de jul. de 2006
Respostas 4
Participantes 3