如何检查对称数?
public static int Symmetric(int a) {
if(new StringBuilder(Integer.toString(a)) ==
new StringBuilder(Integer.toString(a)).reverse())
return a;
else
return 0;
}
我试着这样做,但总是返回 0。
您不能使用==
来比较String
s(或StringBuilder
s),您需要使用equals()
.
此外,您需要在比较之前将StringBuilder
s 转回String
s:
编辑:
另外,真的不需要第一个StringBuilder
:
public static int symmetric(int a) {
if (Integer.toString(a).equals(new StringBuilder(Integer.toString(a)).reverse().toString()))
return a;
else
return 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;
}