0
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を出力します。

4

3 に答える 3

1

使用==する必要がある場合に使用しています:

b=Integer.toString(i).equals("3");

を使用する理由がわかりませんx。タイプミスを想定しています。

基本的には==、リテラルのコンパイルで使用される参照を、実装の詳細により、インターンされている場合とされていない場合がある整数から作成された新しい文字列オブジェクトへの参照とを比較します。

于 2013-07-10T21:38:29.030 に答える
0
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 メソッドは値を比較します。

于 2013-07-10T21:39:50.363 に答える