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

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+" 是回文数");
    }


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值