2015-05-04 41 views
0

我有一個簡單的應用程序,要求用戶輸入一個搜索詞,然後對該詞進行搜索。自動更正輸入的字符串值,在java中

我想賦予它「自動糾正」輸入術語的能力。這只是一些術語,很容易輸入錯誤。例如,如果有人搜索「BestBuy」,並且我的數組中搜索的內容是「Best Buy」,我想在搜索前自動將「BestBuy」轉換爲「Best Buy」。我打算在文本文件中列出這些列表。

這樣做的最好方法是什麼?我可以在我的文本文件中,每行都有像bestbuy, Best Buy這樣的第一項是輸入的術語,第二項是自動更正的內容?我應該使用什麼來存儲這些數據?哈希映射?

編輯:只是爲了澄清,我沒有試圖做出一個實際的自動更正系統。這樣,超出了這個項目的範圍。這只是簡單地用「更正」版本替換某些輸入以匹配正在搜索的數組中的內容。

+0

你有多少條款? – swinkler

回答

1

自動更正,通常比hashmap有更難的解決方案,因爲你無法預測用戶輸入,所以沒有必要製作hashmap,儘管你可以將它用作密鑰存儲庫。 一種可能的方式:http://en.wikipedia.org/wiki/Levenshtein_distance就在你的地圖/字典有單詞,然後選擇最近的

0

你可以使用HashMap,創建翻譯所有不同類型的輸入的是正確的方法。你的方法需要輸入像bestbuy,best buy, BestBuy等,並只返回Best Buy。結果Best Buy將是HashMap密鑰。

0

這有點棘手。爲了提供高層次的想法,您需要維護一個哈希映射,使用不帶空格的字符串作爲key,修正值爲value。當用戶輸入一個字符串,trim()它,請檢查您的地圖'keyset,如果找到匹配的條目,則替換爲值。