字符串的回文数
我用StringBuffer 的方法reverse()  就可以写出来了但是如果是纯的数字型的怎么做啊??我想的到是 判读一个数字是否为回文数                  System.out.println("请输入一个数");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
int number = Integer.parseInt(str);后面就不知道怎么写了 ? 在google看了一些 基本上字符串的回文数
有的虽然说了数字的回文数 用取模取余的方法 但是关键用户输入的数字是几位你都不知道 你怎么取模取余 对吧反正一时间很乱啊 大家有什么好的方法 告诉我啊
谢谢了

解决方案 »

  1.   

    最笨也是最简单的一个思路啊……你就把这个数字转换成String,然后用StringBuffer的reverse方法把它颠倒后判断是否和原来那个字符串相同就可以了。
      

  2.   


    谢谢你啊
    这个方法我知道但是我就是想用纯数字型的 怎么做??
    不要StringBuffer的方法做
    有什么思路吗?
      

  3.   

    不是都有length的方法或者属性么
      

  4.   

    ps:不知道回文数是啥?
    爱莫能助了
    #@*(&%@#&%)*#@&%)@
      

  5.   

    如果非得这样的话,就要用整型数组了吧
    mod 10来获取每一位的值你比如说2578
    第一次mod 10能得到8,存在第0个位置
    把它除以10,小数部分忽略,就变成257了
    再mod 10,得到7,存第1个位置
    以此类推
    能得到一个数组[8][7][5][2]
    然后再逆序把它还原成一个数
    即2×1+5×10+7×100+8×1000 = 8725判断8725 和 2578是否相等,如果相等就是一个回文数了
      

  6.   

    几位数不重要,一直取余,做除法这么算下去,组成一个新的数,和原来的书比较就可以了。
    比如a=12321,
    a%10,得到最后的1
    然后a/=10,得到a=1232;a%10=2,得到2
    循环,知道a=0;
      

  7.   

    Do you want to detect the numbers like this: 22, 545, 7667?
    It's not hard. Just like 2#'s method, you can transfer the int value to a String, then you know what to do.I have not tested the code, so there might be some mistakes...public boolean reverseTheSame(int intNum){
       String input = String.valueOf(intNum);   StringBuffer buffer = new StringBuffer(input);   String temp = buffer.reverse().toString();   if (input.equals(temp))
          return true;   return false;
      

  8.   

    存到一个数组里,或者ArrayList里,第一个和最后一个比较,第二个和倒数第二个比较,直到比到中间,如果一直是true,那就是回文数了。有一个为false,判断结束。
      

  9.   

    当然能。java提供了StringBuilder和StringBuffer,写代码方便了。
    用c之类的语言还是要自己这么处理。
      

  10.   


    数组用反转的方法吗??? 就想StringBuffer的reverse();
      

  11.   

    那这个题目 怎么去求它的个十百千万的数啊我知道取模取余  但是别人输入的值比并不知道那不是要在取模取余的时候加一个for()循环 对吧 怎么加呢??? 
      

  12.   

    写得和C语言差不多了。。接受数据不写了,各种方法nt loopNum = 921129;
    int temp = loopNum;
    int[] bitArray = new int[100];
    int count = 0;
    while (temp != 0) {
    bitArray[count] = temp % 10;
    temp = temp / 10;
    count++;
    }
    int j = count - 1;
    boolean flag = true;
    for (int i = 0; i < (count + 1) / 2; i++, j--) {
    if (bitArray[i] != bitArray[j]) {
    flag = false;
    break;
    }
    }
    if (flag) {
    System.out.println("it's a loop number");
    } else {
    System.out.println("it's not a loop number");
    }
      

  13.   

    System.out.println("请输入一个数");
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    ArrayList array = new ArrayList();
    String str = br.readLine();
    int num = Integer.parseInt(str);

    int ge = num % 10 ;
    int shi = num / 10 % 10;
    int bai = num /10 / 10;很明显 我这样做不行 如果别人输入了4位数值呢 所以就要加一个未知的数 来求别人输入的数值 对吧头都疼了 
      

  14.   

    能不能从 int j = count -1 这里开始加点注释 谢谢了