Não estou conseguindo fazer busca por letra ou por nome em uma agenda java,alguem pode me ajudar?

1 resposta
S
import java.util.Scanner;

public class Pessoa {

 Scanner get = new Scanner(System.in);	
	
        String nome;
        String fixo;
        String celular;
        String email;
 
	public Pessoa()
	{
		System.out.println("Nome :");
		nome = get.nextLine();
		System.out.println("Fixo :");
		fixo = get.nextLine();
		System.out.println("Celular :");
		celular = get.nextLine();
		System.out.println("email :");
		email = get.nextLine();
	}

	public void imprimir()
	{       System.out.println("----------------------");
		System.out.println("Nome.........:" + nome);
		System.out.println("Fixo.........:" + fixo);
		System.out.println("Celular......:" + celular);
		System.out.println("email........:" + email);
		System.out.println();
	}
}

MAIN

import java.util.Scanner;

public class appPessoa {

    static final int TAM = 2;

    public static void main(String[] args) {
        Scanner get = new Scanner(System.in);
        int opcao = -1;			//
        int eof = 0;			//
       		// total maxino na agenda
        Pessoa p[] = new Pessoa[TAM];	//
        String pesquisa = "";		// pesquisa contatos

        do {
            System.out.println("AGENDA");
            System.out.println("-----------------------------------");
            System.out.println("1 - Cadastrar novo contato");
            System.out.println("2 - Listar todos os contatos");
            System.out.println("3 - Consultar um determinado contato");
            System.out.println("4 - Alterar um determinado contato");
            System.out.println("5 - Finalizar");
            System.out.println("-----------------------------------");
            System.out.println("                                    ");
            System.out.print("DIGITE A OPÇÃO: : ");
            System.out.println("                     ");
            opcao = Integer.parseInt(get.nextLine());

            switch (opcao) {
                case 1:
                    if (eof == TAM) {
                        System.out.println("Não há mais espaço na agenda");
                    } else {
                        p[eof++] = new Pessoa();
                    }
                    break;
                case 2:
                    for (int i = 0; i < eof; i++) {
                        p[i].imprimir();
                    }
                    break;
                case 3:
                    System.out.println("Consultar um determinado contato");
                    System.out.println("A - Por nome");
                    System.out.println("B - Pela primeira letra do nome");
                    pesquisa = get.nextLine();
                    if (pesquisa.toUpperCase().charAt(0)=='A' ) {
                        System.out.print("Digite o nome :");
                        pesquisa = get.next();
                    
                        for (int i = 0; i < eof; i++) {
                            if (p[i].nome.toUpperCase().equals(pesquisa)) {
                                System.out.println("Nome : " + p[i].nome);
                            } else {
                                System.out.println("Nenhuma ocorrencia encontrada!!!");
                            }
                        }  }
                    
   
                    if (pesquisa.toUpperCase().charAt(0)=='B' ) {
                        System.out.print("Digite a primeira letra do nome :");
                       pesquisa=get.nextLine();

                        for (int i = 0; i <= eof; i++) {
                            if (p[i].nome.contains(pesquisa)) // garante primeira letra do nome
                            {
                                System.out.println("Nome : " + p[i].nome);
                            } else {
                                System.out.println("Nenhuma ocorrencia encontrada!!!");
                            }
                        }
                    }
                    break;
                case 4:
                    System.out.println("Consultar um determinado contato");
                    System.out.println("A - Por nome");
                    System.out.println("B - Pela primeira letra do nome");
                    pesquisa = get.nextLine();
                    if (pesquisa.charAt(0) == 'A') {
                        System.out.print("Digite o nome :");
                        pesquisa = get.nextLine();

                        for (int i = 0; i < eof; i++) {
                            if (p[i].nome.equals(pesquisa)) {
                                ///System.out.println("Nome : " + p[i].nome);
                            } else {
                                System.out.println("Nenhuma ocorrencia encontrada!!!");
                            }
                        }
                    }

                    if (pesquisa.charAt(0) == 'B') {
                        System.out.print("Digite a primeira letra do nome :");
                        pesquisa = get.nextLine();

                        for (int i = 0; i < eof; i++) {
                            if (p[i].nome.toUpperCase().equals(pesquisa.charAt(0))) // garante primeira letra do nome
                            {
                                System.out.println("Nome : " + p[i].nome);
                            } else {
                                System.out.println("Nenhuma ocorrencia encontrada!!!");
                            }
                        }
                    }
                    break;
            }

        } while (opcao != 5);
        System.out.println("Fim do programa.");
    }
}

1 Resposta

JulioCesarSF
public static Pessoa buscarPorNome(String nome, Pessoa[] pessoas){
		Pessoa p = null;		
		for (Pessoa pessoa : pessoas) {
			if(pessoa.getNome().equals(nome)){
				p = pessoa;
				break;
			}
		}
		return p;		
	}
	
	public static Pessoa buscarPrimeiraLetra(char letra, Pessoa[] pessoas){
		Pessoa p = null;		
		for (Pessoa pessoa : pessoas) {
			if(pessoa.getNome().indexOf(letra) != -1){
				p = pessoa;
				break;
			}
		}
		return p;	
	}

Acho que ninguém vai parar para ler seu código. rss Modifica e testa ae com o que e mandei.

Na classe Pessoa você só faz o beans, não faça a captação de dados dentro da classe.
Vetor tem uma propriedade chamada length.
Classe sempre começa com letra maiúscula também…

Criado 22 de outubro de 2016
Ultima resposta 23 de out. de 2016
Respostas 1
Participantes 2