1 题目重述
题目描述:输入一个整数 n,并判断是否是"回文数";
回文数:正向读数与反向读数都一致的数字
例如:
- 输入:12321
- 返回:1 代表是回文数
- 输入:9527
- 返回:0 代表不是回文数
2 题目分析
2.1 题目梳理
题目中的关键词:输入,整数n,判断,回文数
今天的题目也是输入一个整数,我们就不多加叙述了。今天的重点在于如何判断回文数上。首先我们要明确回文数的概念,回文数就是指从左边开始读数和从右边开始读数,读到的数完全相同。那么我们的问题就变成了如何正序读数和倒叙读数。
对于这一问题,我们可以将整形转换为字符串类型,通过字符串的倒序遍历来实现倒叙读数。
最后,将原数字与倒叙读数的数字进行比较。
2.2 实现思路
2.2.1 输入
采用 Scanner 类的 nextInt() 方法,获取一个整数n。
2.2.2 倒叙读数
将整形转换成字符型,采用String类的volueOf()方法将整型转换成字符型。
采用for循环进行读数,注意,此时我们需要倒序遍历,所以定义i=len-1,通过i–来进行倒序遍历的实现。
2.2.3 判断是否为回文数
这里有四种思路供大家参考。
思路1:采用String类的equals()方法,进行字符串的比较
值得注意的是:String类的equals()方法返回值为Boolean类型,可直接在 if 的表达式中使用。
思路2:采用String类的compareTo()方法,进行字符串的比较
值得注意的是:String类的compareTo()方法返回值为int类型,不能直接在 if 的表达式中使用,需要在 if 的表达式中与0进行比较。
思路3:采用三目运算符进行比较
采用此方法的优点:减少if(){…}else{…}判断语句的使用
思路4:采用Integer类的parseInt()方法将字符串转换为整型,采用==进行比较。
3 代码实现
3.1 方式1:
// 1 获取一个整数n
Scanner input = new Scanner(System.in);
System.out.println("请输入数字:");
int n = input.nextInt();
// 2 倒序读数
// 2.1 将待判断的数字转换成字符串
// 整型 => 字符串
String strN = String.valueOf(n);
// strNum为倒序遍历后的字符串,默认为null
String strNum = "";
// 2.2 倒序遍历字符串中的每个字符,从而将输入的数字倒序
// 2.2.1 判断字符串长度
int len = strN.length();
for (int i = len - 1; i >= 0; i--) {
// 2.2.2 倒序取出字符串中的每一个字符
strNum += strN.charAt(i);
}
// 2.2.3 将倒序遍历后的字符串输出
System.out.println(strNum)