昨天去面试又碰到一道回文数的题目,想想自己写的方法不够好,今天就重新自己试着写了一下,感觉还可以看看:
class Test {
public static void main(String args[]) {
StringBuffer sb = new StringBuffer();
for(int i=100;i<1000;i++){
sb.append(i);
String s1=sb.toString();
if(s1.endsWith(sb.reverse().toString()))
System.out.println(s1);
sb.delete(0,sb.length());
}
}
}
这里的话主要是用到了StringBuffer的reverse方法,就不用自己写函数来判断或调转数字的顺序了。为了提高程序的效率,我只new了一个StringBuffer的对象,在每次循环结束后将他置为空,即delete(0,sb.length()),当然也可以通过sb=null;来强行将它置空。在这里有一点是需要注意的,在判断原数据与调序过的数据是否相等时,要转换为String类型才行。