私の問題は次のコードに隠されています:
public class saturo {
public String primer, d;
public void start() {
primer = "545640";
//d = "0";
d = String.valueOf(primer.charAt(((primer.length())-1)));
if(d == "0"){
System.out.println("This is equal: d == " + d);
}else{
System.out.println("This is not equal: d == " + d);
}
}
public static void main(String args[]) {
new saturo().start();
}
}
ご覧のとおり、問題は、文字列 d を "0" として宣言すると、プログラムは d が "0" に等しいのでそれを実行してtrue
;を返すことです。
しかし、文字列から文字「0」を取得し、それを文字列に変換し、これが「0」に等しいかどうかを確認すると、false
.
文字エンコードに問題があるかどうかを確認しましたが、いずれにしても正しいです。タイプの不一致はありません。
これのどこにロジックがありますか?