單字:favorite
詞性:ADJ
意思:
1 : preferred above all others and treated with partiality
2 : appealing to the general public
詞性:N
意思:
1 : something regarded with special favor or liking
2 : a special loved one
3 : a competitor thought likely to win
程式:
public static void main(String[] args) {
Crawler crawler = new CrawlerVocabularycom();
String wordStr = "favorite";
try {
Word word = crawler.crawlWord(wordStr); //爬蟲程式會開始從Vocabulary.com上抓取此單字的意思
Map<PartOfSpeech, List<String>> definitions = word.getDefinitions(); //此單字的詞性→定義之資料結構
System.out.println("單字:" + word.getWord());
for (PartOfSpeech pos : definitions.keySet()) //走訪此單字的所有詞性並印出不同詞性下的所有定義
{
System.out.println("詞性:" + pos);
System.out.println("意思:");
List<String> definitionsOfPos = definitions.get(pos);
for (int i = 0; i < definitionsOfPos.size(); i ++)
System.out.println((i+1) + " : " + definitionsOfPos.get(i));
}
} catch (WordNotExistException e) {
//若該單字在字典中不存在
System.out.println("找不到該單詞。");
}
}
難度:2
想要利用所學大展身手的請寫這題! 此題目訓練重點:例外、I/O、資料結構、系統架構、第三方套件 (這一題,請你撰寫出你認為最漂亮的程式。)
你終於要來開發一個英文單字複習系統啦, 在這個系統中,使用者可以管理自己的單字庫,並用此單字庫進行完整的複習。 系統互動如下,(假設使用者已經新增了些許單字,你不一定要跟以下互動完全一致,但基本功能要做到,你也可以開發出更強的複習系統~): ($ 代表螢幕上印出的字, : 代表使用者輸入的字 )
$ 您好,歡迎來到英文單字複習系統 v1.0 $ (1) 管理單字 (2) 進行複習 (3) 離開 : 1 $ 您的單字: $ apple, banana, orange, secret, sleep $ (1) 新增單字 (2) 刪除單字 (3) 返回 : 1 $ 請輸入要新增的單字: : favorite $ 單字:favorite $ 詞性:ADJ $ 意思: $ 1 : preferred above all others and treated with partiality $ 2 : appealing to the general public $ 詞性:N $ 意思: $ 1 : something regarded with special favor or liking $ 2 : a special loved one $ 3 : a competitor thought likely to win $ 完成! $ apple, banana, orange, secret, sleep, favorite $ (1) 新增單字 (2) 刪除單字 (3) 返回 : 2 $ 請輸入要刪除的單字: : apple $ 完成! $ banana, orange, secret, sleep, favorite $ (1) 新增單字 (2) 刪除單字 (3) 返回 : 1 $ 請輸入要新增的單字: : asdasdhasd $ 錯誤,找不到該單詞。 $ (1) 新增單字 (2) 刪除單字 (3) 返回 : 3 $ (1) 管理單字 (2) 進行複習 (3) 離開 : 2 $ 複習開始! $ a_e : (n.) fruit with red or yellow or green skin and sweet to tart crisp whitish flesh $ 請輸入答案: : appce $ 錯誤,剩下兩次機會。 : appae $ 錯誤,剩下一次機會。 : apple $ 答對! $ sp : (v.) be asleep $ 請輸入答案: : slaaa $ 錯誤,剩下兩次機會。 : $ 錯誤,剩下一次機會。 : 123 $ 失敗!請多複習!答案為sleep! $ (1) 管理單字 (2) 進行複習 (3) 離開 : 3 $ 歡迎再來。
(如果一直成功,就把整個單字list都考完,並印出恭喜你成功了!)
每個單字有不同詞性,每個詞性有不同定義,此系統以定義為單位來出題,意思是每一題只考一個定義,並要求使用者填上該定義所屬單字 (如上系統互動呈現)。
而系統會為使用者記錄上一次使用者答對此定義的時間為何日 (單位只記錄到"日",以下稱之為答對日期),
題目出題順序使用此答對日期作為排序,越晚答對的定義,代表使用者對其記憶越猶新,因此順序較後面。
使用者沒有回答過的定義,不具有答對日期,這種定義的順位為最大。
而,相同答對日期的所有定義之間,再隨機打亂順序!
此時你會非常好奇,我要怎麼得到單字的所有解釋? 不用擔心,請把資源區/單字複習系統中兩個jar檔案加進專案依賴庫。(若您找不到檔案,請確認您已同步Github雲端。)
其中jsoup是爬蟲套件,幫助您分析網頁內容,而vocabulary_crawler則是我們使用jsoup來爬取Vocabulary.com 的工具!兩者缺一不可!
您只要使用我們的工具就能一行取得單字定義! 以下為使用範例!以下程式會印出:
單字:favorite 詞性:ADJ 意思: 1 : preferred above all others and treated with partiality 2 : appealing to the general public 詞性:N 意思: 1 : something regarded with special favor or liking 2 : a special loved one 3 : a competitor thought likely to win
程式:
試著思考: