簡體   English   中英

在ArrayList中查找特定單詞

[英]Find a specific word in an ArrayList

我正在編寫一個代碼來加載字符串的ArrayList並檢查是否使用了特定的單詞。 這可能聽起來很奇怪,但細節是:

包含“toot”的toots數量(任何大小寫並允許零(0)代替oh(o),例如“to0t”也應計算在內); 但是,如果它只包含“toot”作為另一項工作的一部分,你不應該算一個嘟嘟聲,例如,“tooter”不足以計算一個嘟嘟聲。

我嘗試了很多東西,但它似乎仍然無法正常工作並計算出正確的結果。

在成員的幫助下,我現在擁有的是:

for (String toot : toots) {
        toot = toot.toLowerCase().replace("0", "o").trim();
        if(toot.equalsIgnoreCase("toot")){
           tootsWithToot++;
        }
}

一個例子是“toot messages”(每行是一個單獨的消息):

** 1 toot 2 t00t

將會回來

tooter tooting **

結果應該顯示2,因為oter和tooting不是具有O或0變化的“嘟嘟”一詞。

我認為改變應該是我需要的.contains但我不是100%肯定。 我再次為這個幽默的請求道歉,我仍然是一個新手程序員。

以下內容應符合您的要求。 它使用正則表達式來匹配字符串的obnly“整個單詞”出現。

for (String toot : toots) {
    toot = toot.toLowerCase().replace("0", "o").trim();
    toot = toot.toLowerCase().replace("O", "o").trim();
    toot = toot.toLowerCase().replace("T", "t").trim();
    if(toot.matches(".*\\btoot\\b.*")){
        tootsWithToot++;
    }
}

更純粹的正則表達式示例如下所示:

for (String toot : toots) {
    if(toot.matches(".*\\b[tT][oO0]{2}[tT]\\b.*")){
        tootsWithToot++;
    }
}

此正則表達式匹配的實例toot ,忽略噸的情況下[tT]和O的(同時也包括0) [oO0]當它們被任何單詞間隔符包圍。

正則表達式可視化

暫無
暫無

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

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