亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java 簡化一個函數

Java 簡化一個函數

Helenr 2022-07-06 10:03:10
我編寫了一個函數來檢查字符串是否包含某些單詞,但對代碼的外觀不滿意所以目前我有private String url  = "validator=http://url.com;useraccount=sf4cdamloci;licence=39I8934U401;addedon=343443334;serial=7QW0-5TU8-YN9P-G4FZ;limit=123;days=10"private String musthave ="validator,useraccount,licence,addedon,serial,limit,days"所以我想檢查 url 是否包含字符串中必須包含的單詞。例如 url 必須有驗證器、用戶帳戶、許可證......所以我嘗試了以下 Boolean has_validator = false; Boolean has_licence = false;   .....//others with has_ prefixString[] split_url = url.split(";")for(String key_item : split_url){   String[] splitteditem = key_item.split("=");    if (splitteditem[0].equalsIgnoreCase("validator")){         has_validator = true;     }    if (splitteditem[0].equalsIgnoreCase("useraccount")){         has_useraccount = true;     }       ....others as well}然后稍后我可以輕松檢查if(has_useraccount && has_...)上述解決方案有效,但它不可擴展,因為每當我包含一個新的必須要編輯我的函數時。有沒有更好的方法來實現這一點。我還是java新手。我已經檢查了正則表達式,但我仍然可以弄清楚如何實現這一點。
查看完整描述

2 回答

?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

不要使用字符串來表示一組字符串。使用...一組字符串:Set<String>. 或者至少是一個字符串數組。


然后只需使用一個循環。如果集合中的任何單詞不包含在文本中,您可以立即返回 false。如果你從未在循環中返回 false,那么所有單詞都包含在文本中,你可以返回 true。


偽代碼:


 for each word in the set

     if the word is not in the text, return false

 end for

 return true


查看完整回答
反對 回復 2022-07-06
?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

如果你有一個Collection必備的字符串,那么你可以做一些簡單的事情,比如:

mustHave.stream().allMatch(url::contains)

我的示例沒有進行不區分大小寫的檢查,但您明白了。


查看完整回答
反對 回復 2022-07-06
  • 2 回答
  • 0 關注
  • 82 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號