输入一个k位整数(1≤k≤9),判断该整数是否为回文数。
要求和提示:
(1)仅考虑int型正整数,并综合利用所学较好地处理异常输入,包括非法整数、负整数、超过9位数的正整数输入时的处理。且输入时要给用户一些提示比如输入不超过9位数的整数等。
(2)回文数即:6,161,123454321之类左右按数字念过去都一样的数。
(3)必须使用循环。不允许使用串反转!
import java.util.InputMismatchException;
import java.util.Scanner;
public class zonghe {
public static void main(String[] args) {
int x,a,b;
int y=0;
int n =0;
Scanner s = new Scanner(System.in);
Scanner input = new Scanner(System.in);
System.out.println("请输入一个不超过9位数的正整数");
x = s.nextInt();
try {
if(x <= 0)
{
System.err.println("不可以为0或负数,请重新输入正整数");
x = s.nextInt();
}
a = x ;
do{
b = a % 10;
y = y * 10 + b;
a /= 10;
n++;
if(n > 9)
{
System.err.println("不可以为超过9位数,请重新输入正整数");
x = s.nextInt();
a = x ;
n = 0;
}
}while(a != 0 );
if(y == x)
System.out.println("是回文");
else
System.out.println("不是回文");
}
catch (InputMismatchException e){
System.err.println("输入错误");
}catch(Exception e){
e.getMessage();
e.printStackTrace();
}finally{
input.close();
System.out.println("感谢使用");
}
}
}
代码截图: