[英]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.