我正在研究一個小型項目,該項目將基本上在多個文本文件中搜索用戶給定的單詞。我計劃通過在搜索之前將每個文件散列到大型散列表中來完成此操作,然後散列用戶對單詞的選擇並將其與散列表進行比較。從散列中排除單詞的最有效方法
我的問題是,我想從我的哈希中排除某些常見的詞,如「the」。是我曾經想過做這兩種方式如下:
創建一個正則表達式基本上是「\ bword1 \ C | \ bword2 \ C |」等等等等,然後做一個
String.split(regex,"")
從文本中刪除的那些話,我開始散列之前,當我處理每一個字,做一個
String.matches(regex)
檢查,看看是否這個詞屬於我的排除正則表達式話。如果是這樣,只需跳到下一個單詞。
我覺得這兩個解決方案非常相似,我想知道是否有更高效的方法來做到這一點。
不是使用正則表達式,而是將所有要忽略的單詞存儲在「HashSet」或其他O(1)查找數據結構中。然後逐字解析文件,並在進一步處理之前查看它們是否在忽略「Set」中。 'Set'操作*可能*比任何可以製作的正則表達式都要快(但我沒有運行任何實驗來確定)。 – dg99
如果你發現了單詞,你會怎麼做?換句話說,你的密鑰和你的哈希表的價值是什麼(我假設單詞是關鍵) – Mani
@Mani我打算將單詞作爲鍵,並且這些值是列出什麼文件包含單詞 – sven