java - 배열을 저장하고 가져오기 예제

imjingu·2023년 8월 21일
0

개발공부

목록 보기
394/481

지인들의 연락처 (최대 100)을 저장하고 검색하는 프로그램을 객체 배열을 이용하여 작성.
1) Contacts 클래스는 이름 name, 전화번호 tel, 이메일 email 등의 필드를 가짐.
여기에 지인들의 수를 저장하는 정적변수 count를 추가.

2) Contacts 객체를 저장하는 객체 배열을 생성.
*
이프로그램은 다음과 같은 사용자 인터페이스를 가짐

연락처를 입력하시오(종료 -1)
이름과 전화번호 이메일을 입력하세요: Kim 010-111-2222 kim@java.com
이름과 전화번호 이메일을 입력하세요: Park 010-111-3333 park@java.com
이름과 전화번호 이메일을 입력하세요: Lee 010-111-4444 lee@java.com
이름과 전화번호 이메일을 입력하세요: -1
지인들의 수는 3명입니다.
검색할 이름을 입력하시오: Park
Park의 전화번호: 010-111-3333 이메일 : park@java.com

  • 입력시 데이터는 공백으로 구분해서 입력
    String[] datas = inputs.split(" ");split 메서드를 이용해서 배열 처리.
package chapter20230821;
import java.util.*;

class Contacts {
    private String name;
    private String tel;
    private String email;
    public static int count;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getTel() {
        return tel;
    }

    public String getEmail() {
        return email;
    }

    public Contacts(String name, String tel, String email) {
        this.name = name;
        this.tel = tel;
        this.email = email;
    }

    @Override
    public String toString() {
        return "Contacts{" +
                "name='" + name + '\'' +
                ", tel='" + tel + '\'' +
                ", email='" + email + '\'' +
                '}';
    }
}

public class test02 {
	
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		Contacts[] contacts = new Contacts[100]; // contacts에 100개의 배열을 저장할수 있게 만듬
		String inputs;
		int count = 0;
		
		System.out.println("연락처를 입력하시오(종료 -1)");
			for(int i = 0; i < contacts.length; i++) { // contacts.length로 100 개의 배열에 저장할 수 있게 반복문을 돌림
				System.out.print("이름과 전화번호 이메일을 입력하세요 : ");
				inputs = scanner.nextLine();
				if(inputs.equals("-1")) { // equals는 문자열로 비교하기 위해 사용, 숫자에는 "" 사용 문자에는 안붙여도 가능
					System.out.println("지인들의 수는 " + count + "명 입니다.");
					break;
				}else {
					String[] datas = inputs.split(" "); // datas[0] = "kim", datas[1] = "010-1234-1234", datas[2] = kim@java.com, 배열로 받음!!
//					System.out.println(Arrays.toString(datas)); // 입력 데이터가 배열로 변경이 잘 되었는지 확인
					contacts[i] = new Contacts(datas[0], datas[1], datas[2]); // 받을 배열들을 contacts[i] 에 저장
					count++;
				}
			}
		
		System.out.print("검색할 이름을 입력하시오 : ");
		String findName = scanner.nextLine(); // nextLine() - System.out.print("검색할 이름을 입력하시오 : "); 다음의 나오는 문자를 가져와서 저장
		for(int i = 0; i < count; i++) { // count한 횟수 for문이 몇번 돌아 갔는지 몇명의 데이터가 입력 되었는지 카운트
			if(contacts[i].getName().equals(findName)) { // contacts[i]번에 name을 들고와 findName와 비교
				System.out.println(findName + "의 전화번호 : " + contacts[i].getTel() + " 이메일 : " + contacts[i].getEmail());
			}
		}
	}

}

0개의 댓글