Java中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");
}
}
————————————————
可以直接用String.valueOf()方法轉為字符串后再用contains方法比較,這樣就省去遍歷這一步驟了