编写一个Java 应用程序。用户从键盘输入一个1 - 99999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。回文数是指将该数含有的数字逆序排列后得到的数和原数相同例如12121 、3223 都是回文数。
时间: 2024-09-30 07:12:25 浏览: 52
java实验:编写一个java应用程序,用户从键盘输入一个1-99999的数,程序将判断这个数是几位数,并判断这个数是.pdf
当你想要编写一个Java应用程序来实现这个功能时,你需要遵循以下步骤:
1. **获取用户输入**:
首先,创建一个`Scanner`对象来读取用户的输入。你可以使用`System.in`作为基础。
```java
import java.util.Scanner;
public class PalindromeChecker {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个1到99999之间的整数:");
int number = scanner.nextInt();
scanner.close(); // 关闭扫描器以释放资源
}
}
```
2. **检查位数**:
计算输入数字的位数可以利用Java的`Math`类里的`log10()`函数。然后向上取整得到整数位数。
```java
int numberOfDigits = (int) Math.ceil(Math.log10(number));
```
3. **判断回文数**:
使用循环遍历每一位数字,并检查逆序排列后的数字是否与原始数字相等。可以创建两个临时变量分别存储正序和倒序的数字。
```java
String reversedNumber = "";
boolean isPalindrome = true;
for (int i = numberOfDigits - 1; i >= 0; i--) {
int digit = number % 10;
reversedNumber = digit + reversedNumber;
number /= 10; // 移除当前位
if (number != Integer.parseInt(reversedNumber)) {
isPalindrome = false;
break;
}
}
if (isPalindrome) {
System.out.println(number + "是一个回文数。");
} else {
System.out.println(number + "不是一个回文数。");
}
```
4. **完成整个程序**:
将上述部分整合到主函数中,运行程序,用户输入后会显示结果。
```java
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个1到99999之间的整数:");
int number = scanner.nextInt();
int numberOfDigits = (int) Math.ceil(Math.log10(number));
String reversedNumber = "";
boolean isPalindrome = true;
for (int i = numberOfDigits - 1; i >= 0; i--) {
int digit = number % 10;
reversedNumber = digit + reversedNumber;
number /= 10;
if (number != Integer.parseInt(reversedNumber)) {
isPalindrome = false;
break;
}
}
if (isPalindrome) {
System.out.println(number + "是一个回文数。");
} else {
System.out.println(number + "不是一个回文数。");
}
scanner.close();
}
```
阅读全文