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