Cute Happy Ghost
본문 바로가기
JAVA/Project

전화번호부 검색, 출력 메소드

by JENN_tech7 2020. 10. 21.
728x90
SMALL

초반부터 내 최대적수는 중복값은 출력되면서 검색결과없음 문구는 한번만 출력되는거

아주 수많은 관문이 있었지..

동명이인이 있을수도 있고 나이가 같은 사람이 있을수도있는데 말이야...

이걸 어떻게 했냐면...

 

 

 

 

 

 

if (sr ==1) {
	System.out.print("이름 입력 : ");
	String srName = sc.next();//이름입력받기
	for (int i = 0; i < p.size(); i++) {
		if (srName.contains(p.get(i).getName())) {
			for (int j = i+1; j < p.size(); j++) {
				if (p.get(i).getName().equals(p.get(j).getName())) {
					String Phi = p.get(i).getPhone();
					String Phj = p.get(j).getPhone();
					System.out.println("No\t 이름\t 나이\t 전화번호        ID\t 사용자\t");
					System.out.println("------------------------------------------------------------");
					System.out.println((i+1)+"\t" +p.get(i)+(Phi.substring(0,4))+ "-" +(Phi.substring(4,8))+"|"+ namecode);
					System.out.println((j+1)+"\t" +p.get(j)+(Phj.substring(0,4))+ "-" +(Phj.substring(4,8))+"|"+ namecode);
					return;
				}
			}
			String Ph = p.get(i).getPhone();
			System.out.println("No\t 이름\t 나이\t 전화번호        ID\t 사용자\t");
			System.out.println("------------------------------------------------------------");
			System.out.println((i+1)+"\t" +p.get(i)+(Ph.substring(0,4))+ "-" +(Ph.substring(4,8))+"|"+ namecode);
			return;


		}
	}//for
	System.out.println("결과가 없습니다 다시 입력해주세요");
}//if

아주 멀리갔어..

머리를 굴려서 변수j값을 선언해서 해봤지만 이렇게 하면 동명이인이 2340명 있으면 변수를 2340개를 선언해야되잖아

말도 안된다

근데 난 참 멍청했다

equals의 반댓말이 있는지도 모르고 ㅋㅋㅋㅋㅋㅋ

앞쪽에 !를 붙히면 되는걸 이제알았어

 

 

  • !equals
if (sr ==1) {
	System.out.print("이름 입력 : ");
	String srName = sc.next();//이름입력받기
	for (int i = 0; i < p.size(); i++) {
		if (!srName.equals(p.get(i).getName())) {
			System.out.println("검색결과 없음");
			break;
		}
		if (srName.equals(p.get(i).getName())) {
			String Ph = p.get(i).getPhone();
			System.out.println((i+1)+"\t" +p.get(i)+(Ph.substring(0,4))+ "-" +(Ph.substring(4,8))+"|"+ namecode);
		}
	}//for 
	return;

그리고 검색결과 없는 것을 처음에 해놓고 break;를 걸으면 되는 것이었다 

하하! ㅠ

 

 

 

 

 

 

  • 암튼 결과적으로 내가 만든 search메소드
public void search() {
		for(;;) {
			System.out.println("(1) 이름으로 검색");
			System.out.println("(2) 나이로 검색");
			System.out.println("(3) 전화번호로 검색");
			int sr = sc.nextInt();


			if (sr ==1) {
				System.out.print("이름 입력 : ");
				String srName = sc.next();//이름입력받기
				System.out.println("No\t 이름\t 나이\t 전화번호        ID\t 사용자\t");
				System.out.println("------------------------------------------------------------");
				for (int i = 0; i < p.size(); i++) {
						if (!srName.equals(p.get(i).getName())) {
							System.out.println("검색결과 없음");
							break;
						}
						if (srName.equals(p.get(i).getName())) {
							String Ph = p.get(i).getPhone();
							System.out.println((i+1)+"\t" +p.get(i)+(Ph.substring(0,4))+ "-" +(Ph.substring(4,8))+"|"+ namecode);
						}
					}//for 
					return;


					}
			

	
			if (sr ==2) {
				System.out.print("나이 입력 : ");
				int srAge = sc.nextInt();//나이입력받기
				System.out.println("No\t 이름\t 나이\t 전화번호        ID\t 사용자\t");
				System.out.println("------------------------------------------------------------");
				for (int i = 0; i < p.size(); i++) {
					if (srAge!=(p.get(i).getAge())) {
						System.out.println("검색결과 없음");
						break;
					}
					if (srAge==(p.get(i).getAge())) {
						String Ph = p.get(i).getPhone();
						System.out.println((i+1)+"\t" +p.get(i)+(Ph.substring(0,4))+ "-" +(Ph.substring(4,8))+"|"+ namecode);
					}
				}//for 
				return;
				
					}//if



			if (sr ==3) {
				System.out.print("전화번호 입력(뒤4자리를 입력해주세요) : ");
				String srPhone = sc.next();//전화번호입력받기
				for (int i = 0; i < p.size(); i++) {
					String Ph = p.get(i).getPhone();
					if (srPhone.equals(Ph.substring(4,8))) {
						System.out.println("No\t 이름\t 나이\t 전화번호        ID\t 사용자\t");
						System.out.println("------------------------------------------------------------");
						System.out.println((i+1)+"\t" +p.get(i)+(Ph.substring(0,4))+ "-" +(Ph.substring(4,8))+"|"+ namecode);

						return;
					}
				}
				System.out.println("결과가 없습니다 다시 입력해주세요");

			}
		}
	}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 아주 귀여운 print메소드
public void print() {
		System.out.println("------------------------------------------------------------");
		System.out.println("                  ☎  Phone List ☎                        ");
		System.out.println("No\t 이름\t 나이\t 전화번호        ID\t 사용자\t");
		System.out.println("------------------------------------------------------------");

		for (int i = 0; i < p.size(); i++) {
			String Ph = p.get(i).getPhone();
			System.out.println((i+1)+"\t" +p.get(i)+(Ph.substring(0,4))+ "-" +(Ph.substring(4,8))+"|"+ namecode);

		}
		System.out.println("-------------------------------------------------------------");

	}
728x90
LIST

'JAVA > Project' 카테고리의 다른 글

Todolist  (0) 2020.11.06
전화번호부 검색기능  (0) 2020.10.21

댓글