Java中contains包含的注意事項
阿新 • • 發佈:2019-01-29
最近在用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集合迴圈遍歷,以每一個字串去做比較,還是利用了最初兩個字串區域性的比較
第一次寫部落格還望大家指教。以後都會把自己犯過的錯誤記錄下來,避免下次再犯,同時也希望能幫助大家