0

対称の数を確認する方法は?

public static int Symmetric(int a) {
    if(new StringBuilder(Integer.toString(a)) ==
        new StringBuilder(Integer.toString(a)).reverse())
        return  a;
    else
        return 0;
}

私はこのようにやろうとしますが、常に0を返します。

4

2 に答える 2

4

を使用してs (またはs)==を比較することはできません。使用する必要があります。また、比較する前 に sを s に戻す 必要があります。StringStringBuilderequals()
StringBuilderString

編集: また、最初の必要はありませんStringBuilder:

public static int symmetric(int a) {
    if (Integer.toString(a).equals(new StringBuilder(Integer.toString(a)).reverse().toString()))
        return a;
    else
        return 0;
}
于 2013-02-23T22:26:14.627 に答える
0

平等については、こちらの JLSで説明されています。

Strings で equals() を使用する必要があります: StringBuilder.toString()equals() .

public static int Symmetric( int a ) {
    return
       new StringBuilder(Integer.toString(a)).toString().equals(
             StringBuilder(Integer.toString(a)).reverse().toString())
       ? a : 0;
}
于 2013-02-23T22:28:12.777 に答える