判断一个数是否为回文数,给一个数求出是几位数

package arithmetic;

/**
 *      判断一个是不是回文数。
 *      判断是否为回文内容
 *      给一个数求出是几位数
 *
 * @author sunRainAmazing
 *
 */
public class PalindromeNumber {
    
    

    public static void main(String[] args) {
    
    

        isPalindromeNumber_array(1);
        isPalindromeNumber_array(10001);
        isPalindromeNumber_array(123433);


        isPalindromeNumber_charAt("天连水尾水连天");
        isPalindromeNumber_charAt("雾锁山头山不锁雾");

        isPalindromeNumber_substring("231132");
        isPalindromeNumber_substring("222332");

        isPalindromeNumber_toCharArray(222332);
        isPalindromeNumber_toCharArray(10001);



    }
    /**
     * 判断一个输入的int类型的数是否为回文数
     *      给一个数求出是几位数---见2、while区块代码
     *      逆序输出这个数---见3、for循环体
     * @param number 判断的数字
     */
    public static void isPalindromeNumber_array(int number){
    
    
        //1、定义出需要的变量
        int temp,flag;
         flag=temp=number;
        int count=1;

        //2、求出相应的位数
        while((number=number/10)!=0){
    
    
            count++;
        }

        //3、将各位数加入到数组中去
        //      ---可以通过for在将其赋值的结果输出
        int[] arr=new int[count];
        for (int i = 0; i < count; i++) {
    
    
            arr[i]=temp%10;
            temp/=10;
        }

        //4、进行判断对应的数是否相等
        for (int i = 0; i < count; i++) {
    
    
            if(arr[i] != arr[count-1-i]){
    
    
                System.out.println(flag+" 不是回文数");
                return ;    //这里不能使用break
            }
        }
        System.out.println(flag+" 是回文数");
    }




    /**
     * 利用String字符串的相应方法
     *      主要用到的方法: 
     *              求长度:.length()方法
     *                          charAt(int index)  返回指定索引处的 char 值。 
     * 
     * @param number
     */
    public static void isPalindromeNumber_charAt(String str){
    
    
        //将其转为数组
        int length=str.length();
        for (int i = 0; i < length/2; i++) {
    
    
            if(str.charAt(i)!=str.charAt(length-1-i)){
    
    
                System.out.println(str+" --->不是回文内容");
                return;
            }
        }
        System.out.println(str+" --->是回文内容");
    }






    /**
     * 利用String字符串的相应方法
     *      主要用到的方法:
     *          length()        计算字符串的长度
     *          String  substring(int beginIndex, int endIndex) 
     *                      返回一个新字符串,它是此字符串的一个子字符串。 
     *                      区间  [a,b)   为前闭后开,取前不取后
     *          equals()    判断两个字符串是否相等
     * @param number
     */
    public static void isPalindromeNumber_substring(String str){
    
    
        //将其转为数组
        int length=str.length();
        for (int i = 0; i < length/2; i++) {
    
    
            if(!str.substring(i, i+1).equals(str.substring(length-1-i, length-i))){
    
    
                System.out.println(str+" --->不是回文内容");
                return;
            }
        }
        System.out.println(str+" --->是回文内容");
    }





    /**
     * 利用String字符串的相应方法
     *          char[]   toCharArray() 
     *                将此字符串转换为一个新的字符数组。 
     * @param number
     */
    public static void isPalindromeNumber_toCharArray(int number){
    
    
        //将其转为数组
        char[] arr=(number+"").toCharArray();
        for (int i = 0; i < arr.length; i++) {
    
    
            if(arr[i]!=arr[arr.length-1-i]){
    
    
                System.out.println(number+" 不是回文数");
                return;//注意这里 不能使用break
            }
        }
        System.out.println(number+" 是回文数");
    }


}

猜你喜欢

转载自blog.csdn.net/JAVA_LuZiMaKei/article/details/118382420