昨天在看一本英语书的不规则动词的时候,突然产生的灵感:就是想把这样记单词简单方式,用程序代码实现,然后,使用户可以与之进行交互
这样,在用户背不规则动词的时候就会轻松把它给记住。基于这一点,于是我就思考了一下,画了画图,理了一下思路。然后就开始着手开干。
现在基本成型了,也可以和大家见面了。
先看看一些截图,这样比较直接一点
项目结构:
效果图:
用户可以输入命令:
"all" : 输出所有的不规则动词信息
"pronunciation" : 单词的发音,该命令时一个发音开关,如果连续输入,效果则是:开,关,开,关...
"exit" : 退出系统
其他:如果用户输入的在库中没有,系统则会给出一些联想的词汇供用户选择,如:"drea", 则供选择的是 "dream"
如果用户输入的在库中,如:"dream", 系统会输出"dream"的详细信息,这样用户就可以轻松和系统交互,并且在这一
过程中把单词给记住。
看完效果图,我想大家都基本上了解这个小程序的功能和作用吧!
=================================================
Source Code
Description:
User input some commands in the console,then the system will receive the command
and process it, and display the result to user.
e.g:
ONE : When user input the command "all", then the system will display all irregular verbs.
TWO : When user input the command "pronunciation", then the system will change the status of the pronunciation.
THREE : When user input the a irregular verb, then the system will diplay the detial of the word.
=================================================
/IrregularVerbs/src/com/b510/irregularverbs/client/Client.java
1 /**
2 *
3 */
4 package com.b510.irregularverbs.client;
5
6 import java.util.Scanner;
7
8 import com.b510.irregularverbs.utils.CommonUtil;
9 import com.b510.irregularverbs.utils.IrregularVerbUtil;
10 import com.b510.irregularverbs.utils.PrintUtil;
11
12 /**
13 * User input some commands in the console,then the system will receive<br>
14 * the command and process it, and display the result to user.<br>
15 * for example:
16 * <li>all : show the all of the Irregular Verbs</li>
17 * <li>pronunciation : the switch of the pronunciation.and the system default status<br>
18 * is not pronunciation.</li>
19 * <li>The Irregular Verbs : user input the irregular verb,for example: "swim", "cost", "became".etc.</li>
20 * @author Hongten
21 * @created Feb 27, 2014
22 */
23 public class Client {
24
25 private Scanner inputStreamScanner;
26 private boolean controlFlag = false;
27
28 public static void main(String[] args) {
29 Client client = new Client();
30 client.listenConsoleAndHandleContent();
31 }
32
33 public Client() {
34 inputStreamScanner = new Scanner(System.in);
35 }
36
37 /**
38 * Listen to the console and handle the content,what user inputed.
39 */
40 public void listenConsoleAndHandleContent() {
41 PrintUtil.printInfo(CommonUtil.DESCRIPTION);
42 try {
43 while (!controlFlag && inputStreamScanner.hasNext()) {
44 processingConsoleInput();
45 }
46 } catch (Exception e) {
47 e.printStackTrace();
48 } finally {
49 closeScanner();
50 }
51 }
52
53 /**
54 * The system receive the content, and process it.
55 */
56 private void processingConsoleInput() {
57 String inputContent = inputStreamScanner.nextLine();
58 if (!inputContent.isEmpty()) {
59 if (pronounce(inputContent)) {
60 IrregularVerbUtil.reLoadVerbs();
61 } else {
62 if (showAll(inputContent)) {
63 return;
64 }
65 controlFlag = exit(inputContent);
66 if (!controlFlag) {
67 notExit(inputContent);
68 }
69 }
70 }
71 }
72
73 /**
74 * When user input the command "all"(ignore case),the system will handle the command "all",<br>
75 * and display the all of the irregular verbs.
76 * @param inputContent the command "all"(ignore case)
77 * @return true, if user input the command "all"(ignore case);return false,if user input other command.
78 */
79 private boolean showAll(String inputContent) {
80 if (CommonUtil.ALL.equalsIgnoreCase(inputContent)) {
81 IrregularVerbUtil.showAll();
82 return true;
83 } else {
84 return false;
85 }
86 }
87
88 /**
89 * When user input the command "pronunciation"(ignore case), the system will handle the command "pronunciation",<br>
90 * and reload all of the irregular verbs. and display the message "After loading vocabulary!".
91 * @param inputContent the command "pronunciation"(ignore case)
92 * @return true, if user input the command "pronunciation"(ignore case);return false, if user input other command.
93 */
94 private boolean pronounce(String inputContent) {
95 if (CommonUtil.PRONUNCIATION.equalsIgnoreCase(inputContent)) {
96 IrregularVerbUtil.proFlag = !IrregularVerbUtil.proFlag;
97 return true;
98 } else {
99 return false;
100 }
101 }
102
103 private void notExit(String inputContent) {
104 IrregularVerbUtil verbsLib = IrregularVerbUtil.getInstance();
105 verbsLib.match(inputContent);
106 }
107
108 private boolean exit(String inputContent) {
109 if (CommonUtil.EXIT.equalsIgnoreCase(inputContent)) {
110 controlFlag = true;
111 systemExit();
112 }
113 return controlFlag;
114 }
115
116 private void systemExit() {
117 System.out.println(CommonUtil.EXIT_SYSTEM);
118 System.exit(0);
119 }
120
121 private void closeScanner() {
122 inputStreamScanner.close();
123 }
124 }
/IrregularVerbs/src/com/b510/irregularverbs/lib/VocabularyLib.java
1 /**
2 *
3 */
4 package com.b510.irregularverbs.lib;
5
6 import java.util.HashMap;
7 import java.util.Iterator;
8 import java.util.List;
9 import java.util.Map;
10
11 import com.b510.irregularverbs.utils.CommonUtil;
12 import com.b510.irregularverbs.utils.IrregularVerbUtil;
13 import com.b510.irregularverbs.vo.IrregularVerbsVO;
14
15 /**
16 * Library for the irregular verbs.
17 * @author Hongten
18 * @created Feb 28, 2014
19 */
20 public class VocabularyLib {
21
22 /**
23 * Load all of the irregular verbs.<br>
24 * There have FOUR types of the irregular verbs : "AAA", "ABA", "ABB", "ABC".<br>
25 * so,there are FOUR methods to load all irregular verbs.
26 * @return all of the irregular verbs.
27 */
28 public static List<IrregularVerbsVO> getVocabularyLib() {
29 formatAAA();
30 formatABA();
31 formatABB();
32 formatABC();
33 return IrregularVerbUtil.verbs;
34 }
35
36 /**
37 * The "AAA" format for irregular verbs.
38 *
39 * @return
40 */
41 private static List<IrregularVerbsVO> formatAAA() {
42 Map<String, String> aaaTypemap = libAAA();
43 Iterator<String> it = aaaTypemap.keySet().iterator();
44 while (it.hasNext()) {
45 handleAAA(aaaTypemap, it);
46 }
47 return IrregularVerbUtil.verbs;
48 }
49
50 /**
51 * @param aaaTypemap
52 * @param it
53 */
54 private static void handleAAA(Map<String, String> aaaTypemap, Iterator<String> it) {
55 String key = it.next();
56 if (IrregularVerbUtil.proFlag) {
57 IrregularVerbUtil.verbs.add(new IrregularVerbsVO(key, key, key, aaaTypemap.get(key)));
58 } else {
59 IrregularVerbUtil.verbs.add(new IrregularVerbsVO(key, key, key, aaaTypemap.get(key)));
60 }
61 }
62
63 /**
64 * The "ABA" format for irregular verbs
65 *
66 * @return
67 */
68 private static List<IrregularVerbsVO> formatABA() {
69 Map<String, String> abaTypemap = libABA();
70 Iterator<String> it = abaTypemap.keySet().iterator();
71 while (it.hasNext()) {
72 handleABA(abaTypemap, it);
73 }
74 return IrregularVerbUtil.verbs;
75 }
76
77 /**
78 * @param abaTypemap
79 * @param it
80 */
81 private static void handleABA(Map<String, String> abaTypemap, Iterator<String> it) {
82 String key = it.next();
83 String[] keys = key.split(CommonUtil.COMMA);
84 if (IrregularVerbUtil.proFlag) {
85 IrregularVerbUtil.verbs.add(new IrregularVerbsVO(keys[0] + CommonUtil.COMMA + keys[1], keys[2] + CommonUtil.COMMA + keys[3], keys[0] + CommonUtil.COMMA + keys[1], abaTypemap
86 .get(key)));
87 } else {
88 IrregularVerbUtil.verbs.add(new IrregularVerbsVO(keys[0], keys[1], keys[0], abaTypemap.get(key)));
89 }
90 }
91
92 /**
93 * The "ABB" format for irregular verbs
94 *
95 * @return
96 */
97 private static List<IrregularVerbsVO> formatABB() {
98 Map<String, String> abbTypemap = libABB();
99 Iterator<String> it = abbTypemap.keySet().iterator();
100 while (it.hasNext()) {
101 handleABB(abbTypemap, it);
102 }
103 return IrregularVerbUtil.verbs;
104 }
105
106 /**
107 * @param abbTypemap
108 * @param it
109 */
110 private static void handleABB(Map<String, String> abbTypemap, Iterator<String> it) {
111 String key = it.next();
112 String[] keys = key.split(CommonUtil.COMMA);
113 if (IrregularVerbUtil.proFlag) {
114 IrregularVerbUtil.verbs.add(new IrregularVerbsVO(keys[0] + CommonUtil.COMMA + keys[1], keys[2] + CommonUtil.COMMA + keys[3], keys[2] + CommonUtil.COMMA + keys[3],
115 abbTypemap.get(key)));
116 } else {
117 IrregularVerbUtil.verbs.add(new IrregularVerbsVO(keys[0], keys[1], keys[1], abbTypemap.get(key)));
118 }
119 }
120
121 /**
122 * The "ABC" format for irregular verbs
123 *
124 * @return
125 */
126 private static List<IrregularVerbsVO> formatABC() {
127 Map<String, String> abaTypemap = libABC();
128 Iterator<String> it = abaTypemap.keySet().iterator();
129 while (it.hasNext()) {
130 handleABC(abaTypemap, it);
131 }
132 return IrregularVerbUtil.verbs;
133 }
134
135 /**
136 * @param abaTypemap
137 * @param it
138 */
139 private static void handleABC(Map<String, String> abaTypemap, Iterator<String> it) {
140 String key = it.next();
141 String[] keys = key.split(CommonUtil.COMMA);
142 if (IrregularVerbUtil.proFlag) {
143 IrregularVerbUtil.verbs.add(new IrregularVerbsVO(keys[0] + CommonUtil.COMMA + keys[1], keys[2] + CommonUtil.COMMA + keys[3], keys[4] + CommonUtil.COMMA + keys[5], abaTypemap
144 .get(key)));
145 } else {
146 IrregularVerbUtil.verbs.add(new IrregularVerbsVO(keys[0], keys[1], keys[2], abaTypemap.get(key)));
147 }
148 }
149
150 //============================================
151 // Library for all of the irregular verbs
152 //============================================
153 /**
154 * Library for "AAA" type.
155 * @return
156 */
157 private static Map<String, String> libAAA() {
158 Map<String, String> aaaTypemap = new HashMap<String, String>();
159 aaaTypemap.put(IrregularVerbUtil.proFlag ? "cost,[kɔst]" : "cost", "花费");
160 aaaTypemap.put(IrregularVerbUtil.proFlag ? "cut,[kʌt]" : "cut", "割,切");
161 aaaTypemap.put(IrregularVerbUtil.proFlag ? "hurt,[hə:t]" : "hurt", "受伤");
162 aaaTypemap.put(IrregularVerbUtil.proFlag ? "hit,[hit]" : "hit", "打,撞");
163 aaaTypemap.put(IrregularVerbUtil.proFlag ? "let,[let]" : "let", "让");
164 aaaTypemap.put(IrregularVerbUtil.proFlag ? "put,[put]" : "put", "放下");
165 aaaTypemap.put(IrregularVerbUtil.proFlag ? "read,[ri:d]" : "read", "读");
166 aaaTypemap.put(IrregularVerbUtil.proFlag ? "set,[set]" : "set", "安排,安置");
167 aaaTypemap.put(IrregularVerbUtil.proFlag ? "spread,[spred]" : "spread", "展开,传播,涂");
168 aaaTypemap.put(IrregularVerbUtil.proFlag ? "spit,[spit]" : "spit", "吐痰");
169 aaaTypemap.put(IrregularVerbUtil.proFlag ? "shut,[ʃʌt]" : "shut", "关上, 闭起,停止营业");
170 return aaaTypemap;
171 }
172
173 /**
174 * Library for "ABA" type.
175 * @return
176 */
177 private static Map<String, String> libABA() {
178 Map<String, String> abaTypemap = new HashMap<String, String>();
179 abaTypemap.put(IrregularVerbUtil.proFlag ? "become,[bi'kʌm],became,[bi'keim]" : "become,became", "变");
180 abaTypemap.put(IrregularVerbUtil.proFlag ? "come,[kʌm],came,[keim]" : "come,came", "来");
181 abaTypemap.put(IrregularVerbUtil.proFlag ? "run,[rʌn],ran,[ræn]" : "run,ran", "跑");
182 return abaTypemap;
183 }
184
185 /**
186 * Library for "ABB" type.
187 * @return
188 */
189 private static Map<String, String> libABB() {
190 Map<String, String> abbTypemap = new HashMap<String, String>();
191 abbTypemap.put(IrregularVerbUtil.proFlag ? "burn,[bə:n],burnt,[bə:nt]" : "burn,burnt", "燃烧");
192 abbTypemap.put(IrregularVerbUtil.proFlag ? "deal,[di:l],dealt,[delt]" : "deal,dealt", "解决");
193 abbTypemap.put(IrregularVerbUtil.proFlag ? "dream,[dri:m],dreamed,[dremt]" : "dream,dreamed", "做梦");
194 abbTypemap.put(IrregularVerbUtil.proFlag ? "dream,[dri:m],dreamt,[dremt]" : "dream,dreamt", "做梦");
195 abbTypemap.put(IrregularVerbUtil.proFlag ? "hear,[hiə],heard,[hə:d]" : "hear,heard", "听见");
196 abbTypemap.put(IrregularVerbUtil.proFlag ? "hang,['hæŋ],hanged,[]" : "hang,hanged", "绞死,悬挂");
197 abbTypemap.put(IrregularVerbUtil.proFlag ? "hang,['hæŋ],hung,[hʌŋ]" : "hang,hung", "绞死,悬挂");
198 abbTypemap.put(IrregularVerbUtil.proFlag ? "learn,[lə:n],learned,[]" : "learn,learned", "学习");
199 abbTypemap.put(IrregularVerbUtil.proFlag ? "learn,[lə:n],learnt,[lə:nt]" : "learn,learnt", "学习");
200 abbTypemap.put(IrregularVerbUtil.proFlag ? "light,['lait],lit,[lit]" : "light,lit", "点燃, 照亮");
201 abbTypemap.put(IrregularVerbUtil.proFlag ? "light,['lait],lighted,[]" : "light,lighted", "点燃, 照亮");
202 abbTypemap.put(IrregularVerbUtil.proFlag ? "mean,[mi:n],meant,[ment]" : "mean,meant", "意思");
203 abbTypemap.put(IrregularVerbUtil.proFlag ? "prove,[pru:v],proved,[]" : "prove,proved", "证明, 证实,试验");
204 abbTypemap.put(IrregularVerbUtil.proFlag ? "shine,[ʃain],shone,[ʃəun]" : "shine,shone", "使照耀,使发光");
205 abbTypemap.put(IrregularVerbUtil.proFlag ? "shine,[ʃain],shined,[]" : "shine,shined", "使照耀,使发光");
206 abbTypemap.put(IrregularVerbUtil.proFlag ? "show,[ʃəu],showed,[]" : "show,showed", "展示, 给...看");
207 abbTypemap.put(IrregularVerbUtil.proFlag ? "smell,[smel],smelled,[]" : "smell,smelled", "闻, 嗅");
208 abbTypemap.put(IrregularVerbUtil.proFlag ? "smell,[smel],smelt,[smelt]" : "smell,smelt", "闻, 嗅");
209 abbTypemap.put(IrregularVerbUtil.proFlag ? "speed,[spi:d],sped,[sped]" : "speed,sped", "加速");
210 abbTypemap.put(IrregularVerbUtil.proFlag ? "speed,[spi:d],speeded,[]" : "speed,speeded", "加速");
211 abbTypemap.put(IrregularVerbUtil.proFlag ? "spell,[spel],spelled,[]" : "spell,spelled", "拼写");
212 abbTypemap.put(IrregularVerbUtil.proFlag ? "spell,[spel],spelt,[spelt]" : "spell,spelt", "拼写");
213 abbTypemap.put(IrregularVerbUtil.proFlag ? "wake,[weik],waked,[]" : "wake,waked", "醒来,叫醒, 激发");
214 abbTypemap.put(IrregularVerbUtil.proFlag ? "wake,[weik],woke,[wəuk]" : "wake,woken", "醒来,叫醒, 激发");
215 abbTypemap.put(IrregularVerbUtil.proFlag ? "build,[bild],built,[bilt]" : "build,built", "建筑");
216 abbTypemap.put(IrregularVerbUtil.proFlag ? "lend,[lend],lent,[lent]" : "lend,lent", "借给");
217 abbTypemap.put(IrregularVerbUtil.proFlag ? "rebuild,[ri:'bild],rebuilt,[ri:'bilt]" : "rebuild,rebuilt", "改建, 重建");
218 abbTypemap.put(IrregularVerbUtil.proFlag ? "send,[send],sent,[sent]" : "send,sent", "送");
219 abbTypemap.put(IrregularVerbUtil.proFlag ? "spend,[spend],spent,[spent]" : "spend,spent", "花费");
220 abbTypemap.put(IrregularVerbUtil.proFlag ? "bring,[briŋ],brought,[brɔ:t]" : "bring,brought", "带来");
221 abbTypemap.put(IrregularVerbUtil.proFlag ? "buy,[bai],bought,[bɔ:t]" : "buy,bought", "买");
222 abbTypemap.put(IrregularVerbUtil.proFlag ? "fight,[fait],fought,[fɔ:t]" : "fight,fought", "打架");
223 abbTypemap.put(IrregularVerbUtil.proFlag ? "think,[θiŋk],thought,[θɔ:t] " : "think,though", "思考,想");
224 abbTypemap.put(IrregularVerbUtil.proFlag ? "catch,[kætʃ],caught,[kɔ:t]" : "catch,caught", "捉,抓");
225 abbTypemap.put(IrregularVerbUtil.proFlag ? "teach,[ti:tʃ],taught,[tɔ:t]" : "teach,taught", "教");
226 abbTypemap.put(IrregularVerbUtil.proFlag ? "dig,[diɡ],dug,[dʌɡ]" : "dig,dug", "掘(土), 挖(洞、沟等)");
227 abbTypemap.put(IrregularVerbUtil.proFlag ? "feed,[fi:d],fed,[fed]" : "feed,fed", "喂");
228 abbTypemap.put(IrregularVerbUtil.proFlag ? "find,[faind],found,[]" : "find,found", "发现,找到");
229 abbTypemap.put(IrregularVerbUtil.proFlag ? "get,[ɡet],got,[ɡɔt]" : "get,got", "得到");
230 abbTypemap.put(IrregularVerbUtil.proFlag ? "hold,[həuld],held,[held]" : "hold,held", "拥有,握住,支持");
231 abbTypemap.put(IrregularVerbUtil.proFlag ? "lead,[li:d],led,[led]" : "lead,led", "引导, 带领, 领导");
232 abbTypemap.put(IrregularVerbUtil.proFlag ? "meet,[mi:t],met,[met]" : "meet,met", "遇见");
233 abbTypemap.put(IrregularVerbUtil.proFlag ? "sit,[sit],sat,[sæt]" : "sit,sat", "坐");
234 abbTypemap.put(IrregularVerbUtil.proFlag ? "shoot,[ʃu:t],shot,[ʃɔt]" : "shoot,shot", "射击");
235 abbTypemap.put(IrregularVerbUtil.proFlag ? "spit,[spit],spit,[]" : "spit,spit", "吐痰");
236 abbTypemap.put(IrregularVerbUtil.proFlag ? "spit,[spit],spat,[spæt]" : "spit,spat", "吐痰");
237 abbTypemap.put(IrregularVerbUtil.proFlag ? "stick,[stik],stuck,[stʌk]" : "stick,stuck", "插进, 刺入, 粘住");
238 abbTypemap.put(IrregularVerbUtil.proFlag ? "win,[win],won,[wʌn]" : "win,won", "赢");
239 abbTypemap.put(IrregularVerbUtil.proFlag ? "feel,['fi:l],felt,[felt]" : "feel,felt", "感到");
240 abbTypemap.put(IrregularVerbUtil.proFlag ? "keep,[ki:p],kept,[kept]" : "keep,kept", "保持");
241 abbTypemap.put(IrregularVerbUtil.proFlag ? "leave,[li:v],left,[left]" : "leave,left", "离开");
242 abbTypemap.put(IrregularVerbUtil.proFlag ? "sleep,[sli:p],slept,[slept]" : "sleep,slept", "睡觉");
243 abbTypemap.put(IrregularVerbUtil.proFlag ? "sweep,[swi:p],swept,[swept]" : "sweep,swept", "扫");
244 abbTypemap.put(IrregularVerbUtil.proFlag ? "lay,[lei],laid,[leid]" : "lay,laid", "下蛋, 放置");
245 abbTypemap.put(IrregularVerbUtil.proFlag ? "pay,[pei],paid,[peid]" : "pay,paid", "付");
246 abbTypemap.put(IrregularVerbUtil.proFlag ? "say,[sei],said,[sed]" : "say,said", "说");
247 abbTypemap.put(IrregularVerbUtil.proFlag ? "stand,[stænd],stood,[stud]" : "stand,stood", "站");
248 abbTypemap.put(IrregularVerbUtil.proFlag ? "understand,[],understood,[ʌndə'stænd]" : "understand,understood", "明白");
249 abbTypemap.put(IrregularVerbUtil.proFlag ? "lose,[lu:z],lost,[lɔst]" : "lose,lost", "失去");
250 abbTypemap.put(IrregularVerbUtil.proFlag ? "have,[həv],had,[hæd]" : "have,had", "有");
251 abbTypemap.put(IrregularVerbUtil.proFlag ? "make,[meik],made,[meid]" : "make,made", "制造");
252 abbTypemap.put(IrregularVerbUtil.proFlag ? "sell,[sel],sold,[səuld]" : "sell,sold", "卖");
253 abbTypemap.put(IrregularVerbUtil.proFlag ? "tell,[tel],told,[təuld]" : "tell,told", "告诉");
254 abbTypemap.put(IrregularVerbUtil.proFlag ? "retell,[ri:'tel],retold,[ri:'təuld]" : "retell,retold", "重讲,重复,复述");
255 return abbTypemap;
256 }
257
258
259
260 /**
261 * Library for "ABC" type.
262 * @return
263 */
264 private static Map<String, String> libABC() {
265 Map<String, String> abaTypemap = new HashMap<String, String>();
266 abaTypemap.put(IrregularVerbUtil.proFlag ? "blow,[bləu],blew,[blu:],blown,[]" : "blow,blew,blown", "吹");
267 abaTypemap.put(IrregularVerbUtil.proFlag ? "drive,[draiv],drove,[drəuv],driven,[drivən]" : "drive,drove,driven", "驾驶");
268 abaTypemap.put(IrregularVerbUtil.proFlag ? "draw,[drɔ:],drew,[dru:],drawn,[drɔ:n]" : "draw,drew,drawn", "画画");
269 abaTypemap.put(IrregularVerbUtil.proFlag ? "eat,[i:t],ate,[eit],eaten,['i:tən]" : "eat,ate,eaten", "吃");
270 abaTypemap.put(IrregularVerbUtil.proFlag ? "fall,[fɔ:l],Fell,[fel],fallen,['fɔ:lən]" : "fall,fell,fallen", "落下");
271 abaTypemap.put(IrregularVerbUtil.proFlag ? "give,[ɡiv],gave,[ɡeiv],given,['ɡivən]" : "give,gave,given", "给");
272 abaTypemap.put(IrregularVerbUtil.proFlag ? "get,[ɡet],got,[ɡɔt],gotten,['ɡɔtən]" : "get,got,gotten", "得到");
273 abaTypemap.put(IrregularVerbUtil.proFlag ? "show,[ʃəu],showed,[],shown,['ʃəun]" : "show,showed,shown", "展示, 给...看");
274 abaTypemap.put(IrregularVerbUtil.proFlag ? "fall,[fɔ:l],Fell,[fel],fallen,['fɔ:lən]" : "prove,proved,proven", "证明, 证实,试验");
275 abaTypemap.put(IrregularVerbUtil.proFlag ? "give,[ɡiv],gave,[ɡeiv],given,['ɡivən]" : "beat,beat,beaten", "打败");
276 abaTypemap.put(IrregularVerbUtil.proFlag ? "grow,[ɡrəu],grew,[ɡru:],grown,[ɡrəun]" : "grow,grew,grown", "生长");
277 abaTypemap.put(IrregularVerbUtil.proFlag ? "forgive,[fə'ɡiv],forgot,[fə'ɡɔt],forgiven,[]" : "forgive,forgot,forgiven", "原谅, 饶恕");
278 abaTypemap.put(IrregularVerbUtil.proFlag ? "know,[nəu],knew,[nju: nu:],known,[]" : "know,knew,known", "知道");
279 abaTypemap.put(IrregularVerbUtil.proFlag ? "mistake,[mi'steik],mistook,[mi'stuk],mistooken,[]" : "mistake,mistook,mistooken", "弄错; 误解,");
280 abaTypemap.put(IrregularVerbUtil.proFlag ? "overeat,['əuvə'i:t],overate,[əuvə'reit],overeaten,[]" : "overeat,overate,overeaten", "(使)吃过量");
281 abaTypemap.put(IrregularVerbUtil.proFlag ? "take,[teik],took,[tuk],taken,['teikn]" : "take,took,taken", "拿");
282 abaTypemap.put(IrregularVerbUtil.proFlag ? "throw,[θrəu],threw,[θru:],thrown,[θrəun]" : "throw,threw,thrown", "抛,扔");
283 abaTypemap.put(IrregularVerbUtil.proFlag ? "ride,[raid],rode,[rəud],ridden,['ridən]" : "ride,rode,ridden", "骑");
284 abaTypemap.put(IrregularVerbUtil.proFlag ? "see,[si:],saw,[sɔ:],seen,[si:n]" : "see,saw,seen", "看见");
285 abaTypemap.put(IrregularVerbUtil.proFlag ? "write,[rait],wrote,[rəut],written,['ritən]" : "write,wrote,writen", "写");
286 abaTypemap.put(IrregularVerbUtil.proFlag ? "break,[breik],broke,[brəuk],broken,['brəukən]" : "break,broke,broken", "打破");
287 abaTypemap.put(IrregularVerbUtil.proFlag ? "choose,[tʃu:z],chose,[tʃəuz],chosen,['tʃəuzən]" : "choose,chose,chosen", "选择");
288 abaTypemap.put(IrregularVerbUtil.proFlag ? "hide,[haid],hid,[hid],hidden,['hidən]" : "hide,hid,hidden", "隐藏");
289 abaTypemap.put(IrregularVerbUtil.proFlag ? "forget,[fə'ɡet],forgot,[fə'ɡɔt],forgotten,[fə'ɡɔtn]" : "forget,forgot,forgotten", "忘记");
290 abaTypemap.put(IrregularVerbUtil.proFlag ? "freeze,[fri:z],froze,[frəuz],frozen,['frəuzn]" : "freeze,froze,frozen", "冷冻,结冰,感到严寒");
291 abaTypemap.put(IrregularVerbUtil.proFlag ? "speak,[spi:k],spoke,[spəuk],spoken,['spəukən]" : "speak,spoke,spoken", "说");
292 abaTypemap.put(IrregularVerbUtil.proFlag ? "steal,[sti:l],stole,[],stolen,['stəulən]" : "steal,stole,stolen", "偷");
293 abaTypemap.put(IrregularVerbUtil.proFlag ? "begin,[bi'ɡin],began,[bi'ɡæn],begun,[bi'ɡʌn]" : "begin,began,gegun", "开始");
294 abaTypemap.put(IrregularVerbUtil.proFlag ? "drink,[driŋk],drank,[dræŋk],drunk,[drʌŋk]" : "drink,drank,drunk", "喝");
295 abaTypemap.put(IrregularVerbUtil.proFlag ? "sing,[siŋ],sang,[sæŋ],sung,[sʌŋ]" : "sing,sang,sung", "唱");
296 abaTypemap.put(IrregularVerbUtil.proFlag ? "sink,[siŋk],sank,[sæŋk],sunk,[sʌŋk]" : "sink,sank,sunk", "下沉, 沉没");
297 abaTypemap.put(IrregularVerbUtil.proFlag ? "swim,[swim],swam,[swæm],swum,[swʌm]" : "swim,swam,swum", "游泳");
298 abaTypemap.put(IrregularVerbUtil.proFlag ? "ring,[riŋ],rang,[ræŋ],rung,[rʌŋ]" : "ring,rang,rung", "打电话");
299 abaTypemap.put(IrregularVerbUtil.proFlag ? "be,[],was,[],been,[]" : "be,was,been", "是");
300 abaTypemap.put(IrregularVerbUtil.proFlag ? "be,[],was,[],been,[]" : "be,were,been", "是");
301 abaTypemap.put(IrregularVerbUtil.proFlag ? "bear,[bεə],bore,[bɔ:],born,[]" : "bear,bore,born", "负担, 忍受");
302 abaTypemap.put(IrregularVerbUtil.proFlag ? "bear,[bεə],bore,[bɔ:],born,[bɔ:n]" : "bear,bore,borne", "负担, 忍受");
303 abaTypemap.put(IrregularVerbUtil.proFlag ? "do,[du:],did,[did],done,[dʌn]" : "do,did,done", "做");
304 abaTypemap.put(IrregularVerbUtil.proFlag ? "fly,[flai],flew,[flu:],flown,[fləun]" : "fly,flew,flown", "飞");
305 abaTypemap.put(IrregularVerbUtil.proFlag ? "go,[ɡəu],went,[went],gone,[ɡɔn]" : "go,went,gone", "去");
306 abaTypemap.put(IrregularVerbUtil.proFlag ? "lie,[lai],lay,[lei],lain,[lein]" : "lie,lay,lain", "躺");
307 abaTypemap.put(IrregularVerbUtil.proFlag ? "wear,[wεə],wore,[wɔ:],worn,[wɔ:n]" : "wear,wore,worn", "穿");
308 return abaTypemap;
309 }
310 }
/IrregularVerbs/src/com/b510/irregularverbs/utils/CommonUtil.java
1 /**
2 *
3 */
4 package com.b510.irregularverbs.utils;
5
6 /**
7 * @author Hongten
8 * @created Feb 27, 2014
9 */
10 public class CommonUtil {
11
12 //Commands
13 public static final String EXIT = "exit";
14 public static final String PRONUNCIATION = "pronunciation";
15 public static final String ALL = "all";
16 //Description
17 public static final String DESCRIPTION = "Please input a Irregular Verb or Command:\n[e.g: 'came', 'all', 'pronunciation', 'exit']";
18 public static final String EXIT_SYSTEM = "exited system.";
19 public static final String LOADIGN_VERBS = "After loading vocabulary!";
20
21 public static final String NO_MATCHED = "No matched!";
22 public static final String ADVICE = "You may want to search the follow word(s):";
23 public static final String SPEND = "Spend >> [";
24 public static final String SPEND_END = "]ms";
25
26 public static final int STR_SIZE = 25;
27 public static final String COMMA = ",";
28 public static final String EMPTY = "";
29 public static final String BLANK = " ";
30
31 public static final String LINE_ONE = "=====================";
32 public static final String LINE_TWO = LINE_ONE + LINE_ONE;
33 public static final String LINE_THREE = LINE_TWO+ "\n";
34 }
/IrregularVerbs/src/com/b510/irregularverbs/utils/IrregularVerbUtil.java
1 /**
2 *
3 */
4 package com.b510.irregularverbs.utils;
5
6 import java.util.ArrayList;
7 import java.util.List;
8
9 import com.b510.irregularverbs.lib.VocabularyLib;
10 import com.b510.irregularverbs.vo.IrregularVerbsVO;
11
12 /**
13 * The tool for the Irregular Verbs. Providing load and reload methods to get all irregular verbs.<br>
14 * it also provide the match method to handle the content, which user input in the console.<br>
15 * and display the result of matching.
16 * @author Hongten
17 * @created Feb 27, 2014
18 */
19 public class IrregularVerbUtil {
20
21 private static IrregularVerbUtil irregularVerbs = new IrregularVerbUtil();
22 public static List<IrregularVerbsVO> verbs = new ArrayList<IrregularVerbsVO>();
23 // The switch of the pronunciation
24 public static boolean proFlag = false;
25
26 /**
27 * Load all of the irregular verbs.<br>
28 * @return all of the irregular verbs.
29 */
30 public static List<IrregularVerbsVO> loadIrregularVerbsVOs() {
31 return VocabularyLib.getVocabularyLib();
32 }
33
34 private IrregularVerbUtil() {
35 }
36
37 public static IrregularVerbUtil getInstance() {
38 if (verbs.size() <= 0) {
39 loadIrregularVerbsVOs();
40 }
41 return irregularVerbs;
42 }
43
44 /**
45 * Reload all of the irregular verbs.
46 */
47 public static void reLoadVerbs() {
48 verbs = null;
49 verbs = new ArrayList<IrregularVerbsVO>();
50 loadIrregularVerbsVOs();
51 PrintUtil.printInfo(CommonUtil.LOADIGN_VERBS);
52 PrintUtil.printInfo(CommonUtil.LINE_THREE);
53 }
54
55 /**
56 * Processing the input content,and display the result for matching.
57 * @param input input content.
58 */
59 public void match(String input) {
60 long startTime = System.currentTimeMillis();
61 List<IrregularVerbsVO> temp = new ArrayList<IrregularVerbsVO>();
62 List<IrregularVerbsVO> mayBeVOs = new ArrayList<IrregularVerbsVO>();
63 for (IrregularVerbsVO vo : verbs) {
64 handleMatchWord(input, temp, vo);
65 // match same word(s)
66 input = input.toLowerCase();
67 if (vo.getPrototype().startsWith(input) || vo.getPostTense().startsWith(input) || vo.getPostParticiple().startsWith(input)) {
68 mayBeVOs.add(vo);
69 }
70 }
71 PrintUtil.printInfo(CommonUtil.LINE_TWO);
72 matchResult(temp, mayBeVOs);
73 long endTime = System.currentTimeMillis();
74 PrintUtil.printInfo(CommonUtil.SPEND + (endTime - startTime) + CommonUtil.SPEND_END);
75 PrintUtil.printInfo(CommonUtil.LINE_THREE);
76 }
77
78 /**
79 * There have two results for matching.<br>
80 * <li>First : matched, then display the result of matched.</li>
81 * <li>Second : not matched, then display the related irregular verb(s)</li>
82 * @param matchedList
83 * @param relatedList
84 */
85 private void matchResult(List<IrregularVerbsVO> matchedList, List<IrregularVerbsVO> relatedList) {
86 if (matchedList.size() > 0) {
87 loopMatchResult(matchedList);
88 } else {
89 PrintUtil.printInfo(CommonUtil.NO_MATCHED);
90 if (relatedList.size() > 0) {
91 PrintUtil.printInfo(CommonUtil.LINE_ONE);
92 PrintUtil.printInfo(CommonUtil.ADVICE);
93 loopMatchResult(relatedList);
94 }
95 }
96 }
97
98 /**
99 * Display the match result
100 * @param list
101 */
102 private static void loopMatchResult(List<IrregularVerbsVO> list) {
103 for (IrregularVerbsVO vo : list) {
104 PrintUtil.printInfo(addBlank(vo.getPrototype().replace(CommonUtil.COMMA, CommonUtil.EMPTY))
105 + addBlank(vo.getPostTense().replace(CommonUtil.COMMA, CommonUtil.EMPTY))
106 + addBlank(vo.getPostParticiple().replace(CommonUtil.COMMA, CommonUtil.EMPTY)) + vo.getMean());
107 }
108 }
109
110 /**
111 * @param input
112 * @param temp
113 * @param vo
114 */
115 private void handleMatchWord(String input, List<IrregularVerbsVO> temp, IrregularVerbsVO vo) {
116 if (proFlag) {
117 if (input.equalsIgnoreCase(vo.getPrototype().split(CommonUtil.COMMA)[0]) || input.equalsIgnoreCase(vo.getPostTense().split(CommonUtil.COMMA)[0])
118 || input.equalsIgnoreCase(vo.getPostParticiple().split(CommonUtil.COMMA)[0])) {
119 temp.add(vo);
120 }
121 } else {
122 if (input.equalsIgnoreCase(vo.getPrototype()) || input.equalsIgnoreCase(vo.getPostTense()) || input.equalsIgnoreCase(vo.getPostParticiple())) {
123 temp.add(vo);
124 }
125 }
126 }
127
128 /**
129 * Show all of the irregular verbs.
130 */
131 public static void showAll() {
132 if (verbs.size() <= 0) {
133 loadIrregularVerbsVOs();
134 }
135 long startTime = System.currentTimeMillis();
136 PrintUtil.printInfo(CommonUtil.LINE_TWO);
137 loopMatchResult(verbs);
138 long endTime = System.currentTimeMillis();
139 PrintUtil.printInfo(CommonUtil.SPEND + (endTime - startTime) + CommonUtil.SPEND_END);
140 PrintUtil.printInfo(CommonUtil.LINE_THREE);
141 }
142
143 /**
144 * Add the blank
145 * @param str
146 * @return
147 */
148 private static String addBlank(String str) {
149 int blank = CommonUtil.STR_SIZE - str.getBytes().length;
150 for (int i = 0; i < blank; i++) {
151 str += CommonUtil.BLANK;
152 }
153 return str.toString();
154 }
155 }
/IrregularVerbs/src/com/b510/irregularverbs/utils/PrintUtil.java
1 /**
2 *
3 */
4 package com.b510.irregularverbs.utils;
5
6 /**
7 * @author Hongten
8 * @created 2014-2-27
9 */
10 public class PrintUtil {
11
12 public static void printInfo(String info) {
13 System.out.println(info);
14 }
15
16 public static void printInfo(StringBuffer info) {
17 System.out.println(info);
18 }
19
20 public static void printInfo(char info) {
21 System.out.println(info);
22 }
23 }
/IrregularVerbs/src/com/b510/irregularverbs/vo/IrregularVerbsVO.java
1 /**
2 *
3 */
4 package com.b510.irregularverbs.vo;
5
6 /**
7 * @author Hongten
8 * @created Feb 27, 2014
9 */
10 public class IrregularVerbsVO {
11
12 private String prototype;
13 private String postTense;
14 private String postParticiple;
15 private String mean;
16
17 public IrregularVerbsVO(String prototype, String postTense, String postParticiple, String mean) {
18 super();
19 this.prototype = prototype;
20 this.postTense = postTense;
21 this.postParticiple = postParticiple;
22 this.mean = mean;
23 }
24
25 public String getPrototype() {
26 return prototype;
27 }
28
29 public void setPrototype(String prototype) {
30 this.prototype = prototype;
31 }
32
33 public String getPostTense() {
34 return postTense;
35 }
36
37 public void setPostTense(String postTense) {
38 this.postTense = postTense;
39 }
40
41 public String getPostParticiple() {
42 return postParticiple;
43 }
44
45 public void setPostParticiple(String postParticiple) {
46 this.postParticiple = postParticiple;
47 }
48
49 public String getMean() {
50 return mean;
51 }
52
53 public void setMean(String mean) {
54 this.mean = mean;
55 }
56
57 }
Download Source Code : http://files.cnblogs.com/hongten/IrregularVerbs.zip