描述下问题:

今天我在使用java的 Obj.indexOf("xxx") 的时候,发现不管结果是true还是false,都会进行受限的方法体内。

这个问题我不知道是为什么,谁给解答下啊。

代码如下:

java中 indexOf() 方法的bug_java

上面的运行中的代码,结果明显是false,但是还是进入了方法体了。

下面的就可以:

java中 indexOf() 方法的bug_indexOf_02


附上代码:

// 这段代码不好使
for (KbjcbEntity jcbEnt : jcList) {
jcmcTemp = ","+jcbEnt.getJcmc()+",";
demo = ","+ jc +",";
if(jcmcTemp.indexOf(demo) >= 0){
ent.setValue3(jcbEnt.getJc());
}
}
// 这段代码好使
for (KbjcbEntity jcbEnt : jcList) {
jcmcTemp = ","+jcbEnt.getJcmc()+",";
demo = ","+ jc +",";
int ret = jcmcTemp.indexOf(demo);
if(ret >= 0){
ent.setValue3(jcbEnt.getJc());
}
System.out.println();
}
// 测试的时候,代码的值跟断点时的值是一样的,但是这里的代码就好使
String aa = ",6,7,";
if(aa.indexOf(",2,") != -1){
System.out.println("11");
}else{
System.out.println("22");
}