1. 程式人生 > >Java中contains包含的注意事項

Java中contains包含的注意事項

最近在用contains這個方法時遇到了一個坑,特記下來與大家分享。如果有不對的地方希望大家多多指教

String str="/login/index.do";
if(str.contains("/login")){
   System.out.println("true");
}else{
   System.out.println("false");
}

這段程式碼顧名思義會返回true,因為contains比較兩個字串時,只要區域性相等就算成立

List<String> list=new ArrayList<String>();
list.add("/login/index.do"
); list.add("/login/exit.do"); if(list.contains("/login")){ System.out.println("true"); }else{ System.out.println("false"); }

這段程式碼會返回false,原因是:當用list去判斷的時候,不是區域性相等,而是list的其中一項要和字串全部相等,也就是所謂的必須是兩個字串相等

解決辦

List<String> list=new ArrayList<String>();
list.add("/login/index.do");
list
.add("/login/exit.do"); for (String str : list) { if(str.contains("/login")){ System.out.println("true"); }else{ System.out.println("false"); } }

把list集合迴圈遍歷,以每一個字串去做比較,還是利用了最初兩個字串區域性的比較

第一次寫部落格還望大家指教。以後都會把自己犯過的錯誤記錄下來,避免下次再犯,同時也希望能幫助大家