在java

时间:2015-05-04 17:29:44

标签: java hashmap key autocorrect

我有一个简单的应用程序,要求用户提供搜索字词,然后搜索该字词。

我想让它能够“自动更正”输入的字词。这只是几个术语,很容易输入错误。例如,如果有人搜索“BestBuy”,并且我在我的阵列中搜索的是“Best Buy”,我想在搜索之前自动将“BestBuy”转换为“Best Buy”。我打算在文本文件中列出这些列表。

最好的方法是什么?我可以在我的文本文件中,每行都是bestbuy, Best Buy,第一项是输入的术语,第二项是自动修正的内容吗?我应该用什么来存储这些数据?一个hashmap?

编辑:只是为了澄清,我不打算制作一个真正的自动纠正系统。这是超出本项目范围的方式。这只是简单地用“已更正”版本替换某些输入以匹配正在搜索的数组中的内容。

3 个答案:

答案 0 :(得分:1)

自动更正,通常比hashmap更难解决,因为您无法预测用户输入,因此无需制作散列映射,尽管您可以将其用作键存在存储。 一种可能的方法:http://en.wikipedia.org/wiki/Levenshtein_distance使用地图/字典中的单词,然后选择最近的

答案 1 :(得分:0)

您可以使用HashMap,创建一种方法,将所有不同类型的输入转换为正确的输入。您的方法接受bestbuybest buyBestBuy等输入,并仅返回Best Buy。结果Best Buy将是HashMap密钥。

答案 2 :(得分:0)

这有点棘手。为了提供高级别的想法,您需要维护一个hashMap,其中包含空格的字符串key,以及更正的值value。当用户输入字符串trim()时,请检查地图“keyset,如果找到匹配的条目,则替换为值。