昨天在看一本英语书的不规则动词的时候,突然产生的灵感:就是想把这样记单词简单方式,用程序代码实现,然后,使用户可以与之进行交互

这样,在用户背不规则动词的时候就会轻松把它给记住。基于这一点,于是我就思考了一下,画了画图,理了一下思路。然后就开始着手开干。

现在基本成型了,也可以和大家见面了。

先看看一些截图,这样比较直接一点

项目结构:

效果图:

用户可以输入命令:

"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

===============================================

转载于:https://www.cnblogs.com/hongten/p/hongten_java_ireegular_verbs.html

原来还有这样的记词方法_Java版记不规则动词_博主推荐相关推荐

  1. 助记词创建以太坊钱包源码_墨客科普 | MOAC区块链钱包账号管理

    本文简单描述钱包账号管理的一些方法. 一.术语 1.1 gas,Gas Limit和Gas Price 在墨客区块链上,发送代币或调用智能合约.执行写入操作,需要支付矿工计算费用,计费是按照Gas计算 ...

  2. 助记词创建以太坊钱包源码_技术指南 | 以太坊钱包开发:生成账户地址、私钥、keystore、助记词...

    一.使用web3连接到以太坊网络(测试网.主网) 1. 什么是web3 web3是以太坊官方开提供的一个连接以太坊区块链的模块,允许您使用HTTP或IPC与本地或远程以太坊节点进行交互,它包含以太坊生 ...

  3. php实现助记词转TRX,ETH 私钥和钱包地址

    TRX助记词转地址网上都是Java,js或其他语言开发的示例,一个简单的功能需要依赖其他环境来实现表示不能忍,毕竟php是世界上最好的语言.[狗头] 一.知识准备 要实现助记词转TRX私钥和地址,先需 ...

  4. HPB-Wallet:HPB钱包助记词生成和备份

    HPB-Wallet:HPB钱包助记词生成和备份 助 记 词 生 成 1 BIP32, BIP39, BIP44 BIP32:定义 Hierarchical Deterministic wallet ...

  5. 钱包原理——助记词与公私钥

    目前钱包分为两种: 一种是非确定性(随机)的钱包,就是随机生成多个私钥,钱包管理这些私钥.如果需要成千上万的地址,通过随机的方式来生成私钥,这就需要存储那么多无规律的私钥,这样就很麻烦不好管理. 另一 ...

  6. HPB钱包助记词生成和备份

    助记词生成 1 BIP32, BIP39, BIP44 BIP32:定义 Hierarchical Deterministic wallet (简称 "HD Wallet"),是一 ...

  7. 「助记词密盒」用户协议与隐私政策

    用户协议: 本协议是您(以下简称"用户")与 助记词密盒APP(以下简称"APP")之间就助记词密盒提供的服务等相关事宜所订立的契约,对用户与助记词密盒具有法律 ...

  8. 第17篇 账户管理(助记词)

    本文环境: 操作系统:windows 64: node版本:v10.14.0: 参考文档:https://github.com/guoshijiang/blockchain-wallet/tree/m ...

  9. 助记词是什么,有什么用?

    玩加密货币的朋友相信对助记词都不陌生,我们在使用钱包之前,会让你备份12个单词,在备份期间不允许截图操作,并且不断强调这12个单词非常重要,最好用物理方式备份,备份时身边不要有任何人. 对于普通用户来 ...

最新文章

  1. artDialog、Ztree 初体验
  2. Win7 怎么取消禁(被)ping
  3. SonarQube4.4+Jenkins进行代码检查实例之三-单元测试分析
  4. VTK:隐式二次元用法实战
  5. react(92)--批量删除进行置空操作
  6. Java面向对象编程篇3——接口与抽象类
  7. python while循环if_初入python 用户输入,if,(while 循环)
  8. 阿里云构建千万级别架构演变之路
  9. HAOI2018 简要题解
  10. 【Python】numpy矩阵运算大全
  11. 课程作业练习 K均值聚类 python实现(最小误差平方和准则)
  12. 图片上传几种方式总结
  13. 北京医保报销比例,范围
  14. at指令 meid_【技术分享】使用AT调制解调器命令解锁LG Android屏幕
  15. 如何在VSCode配置PHP开发环境(详细版)
  16. Android中framework层下添加aidl编译说程序包不存在
  17. 这可能是你看到最详细的NCF代码讲解(1)数据处理篇
  18. ORA-00054: 资源正忙 解决办法
  19. python不改变图片尺寸压缩到指定大小
  20. Apache POI 设置Excel单元格的宽度和高度

热门文章

  1. Set 遍历的三种方法。
  2. 关于UI开发(总结一些技术和一些论坛牛人讨论)
  3. ICEPAK与FLOTHERM数值特性对比
  4. 神经网络数学建模怎么算,神经网络数学建模论文
  5. oracle的explain使用
  6. 分数化成有限小数的方法_什么样的分数能化成有限小数?
  7. 数学建模历年真题分析
  8. Spring2.5+Struts1.3.8+JPA(Hibernate实现)整合之四
  9. 新华三的背景_新华三和它旗下的品牌详细解读
  10. 智力过河游戏c语言,Flash制作的智力过河小游戏(附代码)