检查对称数

时间:2013-02-23 22:24:54

标签: java symmetric

如何在对称上检查号码?

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

我试着像这样做,但总是返回0。

2 个答案:

答案 0 :(得分:4)

您无法使用==来比较String s(或StringBuilder s),您需要使用equals()
 此外,在比较之前,您需要将StringBuilder转回String

修改 此外,实际上不需要第一个StringBuilder

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

答案 1 :(得分:0)

平等解释here in JLS

您必须使用equals() on StringsStringBuilder.toString()equals()

public static int Symmetric( int a ) {
    return
       new StringBuilder(Integer.toString(a)).toString().equals(
             StringBuilder(Integer.toString(a)).reverse().toString())
       ? a : 0;
}