Java

[Java] 예제1 - 영어 단어장

에띠 2022. 4. 17. 15:27
728x90

[Java] [영어 단어장]
print : 지금까지 등록한 영단어가 출력
find : 영어 단어를 검색할 수 있음
exit : 프로그램을 종료
✅ 영어단어 또는 메뉴를 입력하세요 : name
뜻을 입력하세요 : 이름
레벨을 입력하세요 : 1
✅ 영어단어 또는 메뉴를 입력하세요 : search
뜻을 입력하세요 : 검색
레벨을 입력하세요 : 1
✅ 영어단어 또는 메뉴를 입력하세요 : find
검색할 단어를 입력하세요 : search
단어를 찾았습니다! 🤤🤤🤤🤤
search : 검색(레벨 1, 날짜 2022-04-17)

✅ 영어단어 또는 메뉴를 입력하세요 : print
***************************************************
name : 이름(레벨 1, 날짜 2022-04-17)
search : 검색(레벨 1, 날짜 2022-04-17)
***************************************************

✅ 영어단어 또는 메뉴를 입력하세요 : exit
프로그램을 종료합니다.

public class Word {
    private String eng; // 영단어
    private String kor; // 뜻
    private int lev; // 레벨
    private String wdate; // 등록일자

    public Word(String eng, String kor, int lev, String wdate) {
        this.eng = eng;
        this.kor = kor;
        this.lev = lev;
        this.wdate = wdate;
    }

    public String getEng() {
        return eng;
    }

    public void setEng(String eng) {
        this.eng = eng;
    }

    public String getKor() {
        return kor;
    }

    public void setKor(String kor) {
        this.kor = kor;
    }

    public int getLev() {
        return lev;
    }

    public void setLev(int lev) {
        this.lev = lev;
    }

    public String getWdate() {
        return wdate;
    }

    public void setWdate(String wdate) {
        this.wdate = wdate;
    }

    @Override
    public String toString() {
        return eng + " : " + kor + "(레벨 " + lev + ", 날짜 " + wdate + ")";
    }
}

 

 

import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.Scanner;

public class Main1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("[영어 단어장]");
        System.out.println("print : 지금까지 등록한 영단어가 출력");
        System.out.println("find : 영어 단어를 검색할 수 있음");
        System.out.println("exit : 프로그램을 종료");

        String eng, kor, wdate;
        int lev;
        ArrayList<Word> word = new ArrayList(); // Word 클래스를 저장해야 하므로 Word를 <>안에 작성
        Word w;

        while(true) {
            System.out.print("✅ 영어단어 또는 메뉴를 입력하세요 : ");
            eng = sc.next();

            if (eng.equals("exit"))  {
                System.out.println("프로그램을 종료합니다.");
                break;
            }
            switch (eng) {
                case "print" :
//                    for(int i = 0; i < word.size(); i++) { // size() 를 이용하여 탐색
//                        System.out.println(word.get(i));
//                    }
                    // Iterator를 이용한 탐색
                    Iterator<Word> iterator = word.iterator(); // ArrayList word 를 탐색할 iterator 객체 생성.
                    System.out.println("***************************************************");
                    while (iterator.hasNext()) {
                        System.out.println(iterator.next());
                    }
                    System.out.println("***************************************************");
                    break;
                case "find" :
                    System.out.print("검색할 단어를 입력하세요 : ");
                    String english = sc.next();
                    Boolean isFind = false; // 단어를 찾았는지 여부
                    for (int i = 0; i < word.size(); i++) {
                        if (word.get(i).getEng().equals(english)) {
                            System.out.println("단어를 찾았습니다! 🤤🤤🤤🤤");
                            System.out.println(word.get(i));
                            isFind = true; // 단어가 있으면 isFind를 true로 변경
                        }
                    }
                    if (isFind == false) { // 단어를 찾지 못했을 경우
                        System.out.println("찾는 단어가 없습니다.");
                    }
                    break;
                default:
                    System.out.print("뜻을 입력하세요 : ");
                    kor = sc.next();
                    System.out.print("레벨을 입력하세요 : ");
                    lev = sc.nextInt();
                    // LocalDateTime.now() : 현재 시간을 반환. yyyy-mm-dd 형식으로 설정하고 wdate에 저장.
                    wdate = String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));

                    w = new Word(eng, kor, lev, wdate); // Word 타입의 w에 입력받은 영단어, 뜻, 레벨, 등록일을 저장한다.
                    word.add(w); // ArrayList word에 w를 추가시킨다.
//                    word.add(new Word(eng, kor, lev, wdate)); 변수 w에 저장하지 않고 바로 추가해도 ok
            }
        }

    }
}

 

728x90