我对compareTo
java中的方法有疑问,这是代码:
for(int i = 0; i < btFolder.size(); i++) {
String g = btFolder.get(i).toString();
String[] subf = g.split(splitchar);
String s = subf[subf.length-1].toUpperCase();
if(s.compareTo(bt.toUpperCase()) == 0) {
return g;
}
}
return null; //not found!
这不会跳入if-statement
,它应该是因为s
和bt
变量相等,我知道是因为我已经完成了作业并对其进行了调试。只是为了弄清楚compareTo
我写了这段代码的方法返回什么:
String g = btFolder.get(i).toString();
String[] subf = g.split(splitchar);
String s = subf[subf.length-1].toUpperCase();
String btUp = bt.toUpperCase();
int theSame = s.compareTo(btUp);
if(theSame == 0) {
putSharedPrefs("pathToBt", g);
}
return null;
变量theSame
为0,表示s
和btUp
相等。而且,the if-statement
永远不会被执行!
为什么会这样?有什么好的解决方案吗?
编辑
我也试过这个:
boolean equals = s.equalsIgnoreCase(bt);
if(equals) {
return g;
}
是,但从不执行,我boolean
还应该提到这是在 a 内部完成的,但这不应该引起任何问题吗?true
if-statement
thread