用户从键盘输入一个1-99999之间的数,程序讲判断这个数是几位数,并判断这个数是否是回文数
时间: 2024-09-20 13:11:32 浏览: 56
要编写这样一个Java程序,首先我们需要做的是获取用户的输入,然后根据输入的数值长度判断它是几位数。接着,我们会检查该数字是否等于其反向字符串形式,也就是回文数。下面是实现的步骤:
```java
import java.util.Scanner;
public class PalindromeNumber {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个1-99999之间的整数:");
// 获取用户输入并验证范围
int number = scanner.nextInt();
if (number < 1 || number > 99999) {
System.out.println("输入超出范围,请重新输入!");
return;
}
// 判断位数
int digitCount = String.valueOf(number).length();
// 判断是否为回文数
boolean isPalindrome = checkPalindrome(number);
// 输出结果
System.out.println("这个数字有 " + digitCount + " 位。");
System.out.println(isPalindrome ? "这是一个回文数" : "这不是一个回文数");
}
// 检查是否是回文数的辅助方法
private static boolean checkPalindrome(int num) {
String strNum = String.valueOf(num);
int left = 0, right = strNum.length() - 1;
while (left < right) {
if (strNum.charAt(left++) != strNum.charAt(right--)) {
return false;
}
}
return true;
}
}
```
在这个程序中,我们使用`Scanner`从键盘获取用户输入,用`String.valueOf()`转换整数为字符串,从而获取它的长度。然后,我们定义了一个`checkPalindrome`方法,利用两个指针(一个从前往后移动,一个从后往前移动)比较字符,如果发现不相等则返回`false`,否则遍历完全部字符后返回`true`。
运行这段代码,用户输入一个1到99999的数字,程序会告诉他们数字的位数以及是否是回文数。
阅读全文