核心概念:
Stringbuilder中的reverse 不可以拿来比较,会always true。正确方法是将其转化为String类型,期间注意逻辑关系正确与否。
public static boolean isPalindrome(int x) {
StringBuilder sb = new StringBuilder();
sb.append(x);
StringBuilder sb1 = new StringBuilder();
sb1 = sb.reverse();
String sb2 = sb1.toString();
StringBuilder sb4 = new StringBuilder();
sb4.append(x);
String sb3 = sb4.toString();
return sb3.equals(sb2);
}
运行结果如下:
同样的,若是用于检测回文字符串,仅需将形参x由int类型改为String类型即可。
public static boolean isPalindrome(String x) {
StringBuilder sb = new StringBuilder();
sb.append(x);
StringBuilder sb1 = new StringBuilder();
sb1 = sb.reverse();
String sb2 = sb1.toString();
StringBuilder sb4 = new StringBuilder();
sb4.append(x);
String sb3 = sb4.toString();
return sb3.equals(sb2);
}
运行结果如下:
主要思路:
将String类型转化为Stringbuilder类型,利用Stringbuilder的append、reverse函数进行增添、反转操作;再利用String类型的equals函数,将反转前后的内容进行对比,返回boolean值。