判断一个整数是否是回文数

这段代码是我做leetcode练习题时写的,虽然实现了回文数的识别,但是倒置后的数字不是一个完整的数字,而是由几个输出拼接而成的,个人觉得不是很好,有点投机取巧的嫌疑。还望有高手指点。

package huiwenshu;
import java.util.*;

public class study06 {
    public static void main(String[] args) {
        Scanner number = new Scanner(System.in);

        //输入长整形数字a
        System.out.printf("输入原始数字:");
        Integer a = number.nextInt();

        //将a转换为字符串类型
        String b = a.toString();

        //将字符串转化为数组
        char c[] = b.toCharArray();

        //定义一个新数组用于接收倒置后的数组元素
        char[] d = new char[c.length];
        System.out.print("倒置后的数字为:");
        for (int i = 0; i < c.length; i++) {
            d[i] = c[c.length-i-1];
            System.out.print(d[i]);
        }

        //判断数字是否是回文数
        System.out.println();
       if (Arrays.toString(c).equals(Arrays.toString(d))){
           System.out.println("该数字是回文数");
       }else {
           System.out.println("该数字不是回文数");
       }
    }
}

下面这段代码是可以在leetcode上提交的代码:

import java.util.*;

public class Solution {
    public static void main(String[] args) {
        Solution a = new Solution();
        Scanner b = new Scanner(System.in);
        Integer c = b.nextInt();
        boolean g=a.isPalindrome(c);
        System.out.println(g);
    }

    public boolean isPalindrome(Integer x) {
        //将a转换为字符串类型
        String d = x.toString();

        //将字符串转化为数组
        char e[] = d.toCharArray();

        //定义一个新数组用于接收倒置后的数组元素
        char[] f = new char[e.length];
        for (int i = 0; i < e.length; i++) {
            f[i] = e[e.length - i - 1];
        }
        if (Arrays.toString(e).equals(Arrays.toString(f))) {
            return true;
        } else {
            return false;
        }
    }
}

猜你喜欢

转载自my.oschina.net/u/3841003/blog/1830533