티스토리 뷰

BookList.java 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
package com.ktds.smahn;
 
import java.util.HashMap;
import java.util.InputMismatchException;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
 
public class BookList {
 
    
    private Map<StringString> dictionary;         //Map 인스턴스 생성
    Scanner console;                                //Scanner 인스턴스 생성
    
    private String english = "";                    //단어 저장용 변수의 선언과 초기화
    private String korean = "";
    private int flag = 0;                            //메뉴 선택 
    
    //생성자
    public BookList(){
        dictionary = new HashMap<StringString>();
        console = new ScannerSystem.in );
    }
    
    // Getters and Setters
    public Map<StringString> getDictionary() {
        return dictionary;
    }
 
    public void setDictionary(Map<StringString> dictionary) {
        this.dictionary = dictionary;
    }
 
    public String getEnglish() {
        return english;
    }
 
    public void setEnglish(String english) {
        this.english = english;
    }
 
    public String getKorean() {
        return korean;
    }
 
    public void setKorean(String korean) {
        this.korean = korean;
    }
    
    
    
    /**
     * 인사말 출력하기
     */
    public void hello() {
        
        System.out.println("---------------------------------------");
        System.out.println("              간단 단어장");
        System.out.println("---------------------------------------");
    }
 
    /**
     * 메뉴 선택하고 해당 메소드 실행
     */
    public void processMenu() {
        
        while(true){
            
            flag = chooseMenu(); 
            
            console = new ScannerSystem.in );
            
            if(flag == 1){
                registerWord(); 
            }
            else if( flag == 2 ){
                findWord();
            }
            else if( flag == 3 ){
                removeWord();
            }
            /*
            else if( flag == 4 ){
                getAllWords();
            }*/
            else if ( flag == 9 ){
                System.out.println("프로그램을 종료합니다.");
                System.exit(0);
            }
            else{
                System.out.println("숫자 1, 2, 3, 9 중 하나를 입력하세요.");
            }
                        
        }
    }
    
    /**
     * 메뉴선택
     */
    private int chooseMenu() {
        
        while(true){
            
        System.out.println("***** 메뉴를 선택하세요 *****");
        System.out.println("1. 단어 등록");
        System.out.println("2. 단어 조회");
        System.out.println("3. 단어 삭제");
        //System.out.println("4. 전체 출력");
        System.out.println("9. 종료");
        
            try{
                //메뉴를 입력받음
                flag = console.nextInt();
                break;
            }
            catch( InputMismatchException ime ){
                console = new ScannerSystem.in );
                System.out.println("잘못 입력했습니다. 1, 2, 3, 9 만 입력할 수 있어요. ");
            }
        }
        
        return flag;
        
    }
    
    
    /**
     * 단어 등록하기
     */
    private void registerWord() {
        
        while(true){
            
            System.out.println("등록하고 싶은 영어 단어를 입력하세요.");    
            english = console.nextLine();
            
            /*
              // 정규식을 안쓴다면...
              
              String alpha = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
              char chars[] = english.toCharArray(); // 한글자 한글자를 배열로 넣기
              
              for( char chr : chars ){
                  // if(alpha.indexOf(chr + "") == -1) { // .indexOf 는 글자가 몇번째에 있는지 체크해주는 것. 만약에 없다면 -1
                  if ( !alpha.contains(chr + "") )
                  System.out.println("잘못 입력했습니다. 영문자만 입력해주세요.)"
                  }
              }
             */
 
            if(!english.matches("^[a-zA-Z]*$")) {
                System.out.println("잘못 입력했습니다. 영문자만 입력해주세요.");
            }
            else {
                break;
            }
        }
        
        while(true){
            System.out.println("등록한 영어의 뜻을 한국어로 입력하세요.");
            this.korean = console.nextLine();
            
            if(!korean.matches("^[가-힣]*$")) {
                System.out.println("잘못 입력했습니다. 한글만 입력해주세요.");
            }
            else{
                break;
            }
        }
 
        // Map 에 단어를 등록함.
        ifthis.english != null && this.korean != null){
            dictionary.put(this.english, this.korean);
            System.out.println("단어를 등록했습니다.");
        }
    }
    
 
    /**
     * 단어 찾기
     */
    private void findWord() {
        
        while(true){
            
            System.out.println("찾고싶은 영어 단어를 입력하세요. ");            
            this.english = console.nextLine();            
            
            if(english.matches("^[a-zA-Z]*$")){
                
                //Map에서 단어를 가져옴.
                korean = dictionary.get(english);
                
                if(korean == null){
                    System.out.println("해당 단어는 존재하지 않습니다. ");
                }
                else {
                    System.out.println(english + "의 뜻은 " + korean + " 입니다.");    
                    break;
                }        
            }
            else{
                System.out.println("잘못 입력했습니다. 영문자를 입력하세요. ");
            }
        }
        
        
        
    }
 
    
    /**
     * 단어 지우기
     */
    private void removeWord() {
        
        while(true){
            
            System.out.println("삭제하고 싶은 영어 단어를 입력하세요.");
            
            this.english = console.nextLine();
            
            if(english.matches("^[a-zA-Z]*$")){
                
                // Map에서 단어를 가져옴.
                korean = dictionary.get(english);
                
                if(korean == null){
                    System.out.println("해당 단어는 존재하지 않습니다.");
                }
                else{
                    // Map에서 단어를 삭제함.
                    dictionary.remove(english);
                    System.out.println(english + "를(을) 삭제했습니다.");
                    break;
                }
            }
            else{
                System.out.println("잘못 입력했습니다. 영문자를 입력하세요.");
            }
        }
    }    
    
 
/*    
    /**
     * 전체 출력하기
     *
    private void getAllWords(){
        
        //Map에 등록된 모든 key를 가져온다.
        Iterator<String> allKey = dictionary.keySet().iterator();
        
        String key = "";
        while( allKey.hasNext() ){
            key = allKey.next();
            System.out.println(key + "의 뜻은 " + dictionary.get(key) + "입니다.");
        }
                    
    }
*/
    
}
 
 
cs

Wordbook.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package com.ktds.smahn;
 
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
 
 
/**
 * HashMap을 이용한 단어장 만들기
 */
public class Wordbook {
    
    
    public void start(){
        
        
        BookList booklist = new BookList();
 
        //인삿말
        booklist.hello();
 
        //메뉴 선택 후 실행
        booklist.processMenu();
        
    } 
 
    public static void main(String[] args) {
        
        Wordbook book = new Wordbook();
        book.start();
        
    }
 
}
 
 
 
cs

 

'프로그래밍 > Java' 카테고리의 다른 글

[Java 종합] 영화관 좌석 예약 시스템  (0) 2016.01.27
예외처리(finally)  (0) 2016.01.26
예외처리  (1) 2016.01.25
컬렉션 프레임워크(List, HashMap, Iterator)  (0) 2016.01.22
[실습문제]가게에서 사과사기  (0) 2016.01.22
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함