编写一个Java应用程序,用户从键盘输入一个1-99999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。

该Java程序旨在检查用户输入的1至99999之间的数字是否为回文数。程序首先验证输入的数字范围,然后通过取余和除法操作分别获取各个位数,并逐一比较来判断是否为回文。如果数字是回文,程序会输出相应的信息;如果不是,也会给出相应提示。
摘要由CSDN通过智能技术生成

import javax.swing.JOptionPane;
public class Number
{
public static void main(String args[])
{
int number=0,d5,d4,d3,d2,d1;
String str=JOptionPane.showInputDialog(“输入一个1至99999之间的数”);
number=Integer.parseInt(str);
if(number>=1&&number<10000) //判断number在1至99999之间的条件
{
d5=number/10000; //计算number的最高位(万位)d5
d4=number/1000; //计算number的千位d4
d3=number/100; //计算number的百位d3
d2=number%100/10;
d1=number%10;
if(d5!=0) //判断number是5位数的条件
{
System.out.println(number+“是5位数”);
if(d5 == d1&&d4 == d2) //判断number是回文数的条件
{
System.out.println(number+“是回文数”);
}
else
{
System.out.println(number+“不是回文数”);
}
}
else if(d4!=0) //判断number是4位数的条件
{
System.out.println(number+“是4位数”);
if(d4 == d1&&d3 == d2) //判断number是回文数的条件码
{
System.out.println(number+“是回文数”);
}
else
{
System.out.println(number+“不是回文数”);
}
}
else if(d3!=0) //判断number是3位数的条件
{
System.out.println(number+“是3位数”);
if(d3 == d1) //判断number是回文数的条件
{
System.out.println(number+“是回文数”);
}
else
{
System.out.println(number+“不是回文数”);
}
}
else if(d2!=0)
{
System.out.println(number+“是2位数”);
if(d1==d2)
{
System.out.println(number+“是回文数”);
}
else
{
System.out.println(number+“不是回文数”);
}
}
else if(d1!=0)
{
System.out.println(number+“是1位数”);
System.out.println(number+“是回文数”);
}
}
else
{
System.out.printf("\n%d不在1至99999之间",number);
}
}
}

编写这样一个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字,程序会告诉他们字的位以及是否是回文数
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值