(数字,字符串,汉字都可以输入)判断一个数是不是回文数

回文数概念:

回文是一种从前往后读和从后往前读都一样的文字或者数字。

例如:12321,abcba。

解题:

  1. 先向程序中输入字符串用到Scanner。
  2. 将字符串转换成字符数组的形式存放 用到 数组名.toCharArray();
  3. 在定义三个变量一个表示字符串最左边数,一个表示最右边数,一个表示判断左右字符是否相等的次数。
  4. 最后判断的次数(也就是程序中的x)如果等于字符数组长度的话就是回文数。如果第一次判断都不相等的话不会执行if中的语句。
  • 举例:12321
  • c[0]是否等于c[4]   (等于的话x++,否则不会执行本次if中的语句)
  • c[1]是否等于c[3]
  • c[2]是否等于c[2]
  • c[3]是否等于c[1]
  • c[4]是否等于c[0]
  • 如果第一次判断c[0]不等于c[4]的情况下将不会执行left++,right--,x++

        以上所述结合以下代码来看

import java.util.Scanner;
public class code {
    public static void main(String[] args){
       Scanner sc=new Scanner(System.in);
       System.out.print("请输入需要判断的数:");
       //向程序中输入字符串
       String a=sc.next();
       //将字符串转换成字符数组的形式存放
       char[] c=a.toCharArray();
       int x=0;
       int left=0; //left表示最左边的字符
       int right=c.length-1; //c.length-1表示字符数组c的真正长度
       for(int i=0;i<c.length;i++){ //i<c.length相当于i<=c.length-1
           if(c[left]==c[right]){
               left++;  //c[0],c[1],c[2]...c[n]
               right--;  //c[n],c[n-1]...c[n-n]
               x++;
               /* x表示最左边字符和最右边字符进行判断的次数
               (如果是回文最左边的数判断到最右边,最右边的数判断到最左边)
                */
           }
       }
       if(x==c.length)   
           System.out.println(a+"是回文数");
       else
           System.out.println(a+"不是回文数");
    }
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

L舍予

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值