public class run
{
public static void main(String args[])
{
boolean b;
int i=3;
b=Integer.toString(i)=="3";
System.out.println(b);
}
}
私のコードによれば、trueを返すはずですが、falseを出力します。
使用==
する必要がある場合に使用しています:
b=Integer.toString(i).equals("3");
を使用する理由がわかりませんx
。タイプミスを想定しています。
基本的には==
、リテラルのコンパイルで使用される参照を、実装の詳細により、インターンされている場合とされていない場合がある整数から作成された新しい文字列オブジェクトへの参照とを比較します。
public class run
{
public static void main(String args[])
{
boolean b;
int i=3;
x=Integer.toString(i).equals.("3"); // change in this line
System.out.println(x);
}
}
== はオブジェクトの参照を比較し、equals メソッドは値を比較します。