簡體   English   中英

字符串搜索並替換Java

[英]String search and replace Java

我正在處理一種算法方法,可以在字符串中查找關鍵字。 我有一個HashSet,其中包含將近一百萬個鍵,我想將所有這些鍵替換為句子中的空白。 我的問題是,當我有10個單詞的1000個句子時,總共將變成10.000個單詞。
在此處將關鍵字搜索到句子中的最佳方法是什么?

    Set<String> keywords;//1.000.000 entry
    for(int i =0;i<textModel.length;i++){//1.000 entry almost
            String[] splitted = textModel[i].getText().split(" ");
            for (int j = 0; j < splitted.length; j++) {
                if(keywords.contains(splitted[j]){//?
                     splitted[j] = "";// ??
                }
            }
        }

這種方法行嗎? 還是我應該使用文本搜索算法?

我認為如果您真的很擔心搜索時間,則應該使用Boyer-Moore算法,如果出現不匹配的情況,該算法會跳過X個字符/單詞。 在此處輸入圖片說明

但這允許使用稱為“良好后綴”規則的規則,在該規則中找到單詞的一部分,然后將與另一個子字符串平行的那部分對齊,直到找到一個對。 在此處輸入圖片說明

但是,如果時間不成問題,那么您的算法應該不錯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM