compareToJavaのメソッドに問題があります。これはコードです:
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ためです。宿題をしてデバッグしたのでわかります。メソッドが何を返すかを理解するために、次のコードを書きました。sbtcompareTo
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ですがtrue、if-statementを実行することはありません。これは 内で行われることにも言及するthread必要がありますが、問題は発生しませんか?