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

您不能使用==来比较Strings(或StringBuilders),您需要使用equals().
此外,您需要在比较之前将StringBuilders 转回Strings:

编辑: 另外,真的不需要第一个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()等于()

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 回答