import javax.swing.JOptionPane;
public class Number_1 {
   public static void main(String args[])
   {
   int number = 0,d1,d2,d3,d4,d5;
   String str = JOptionPane.showInputDialog("输入一个1至99999之间的数");
   number = Integer.parseInt(str);
   if(number>=1||number<=99999)
   {
   d5= number % 100000 / 10000;
   d4= number % 10000 / 1000;
   d3= number % 1000 / 100;
   d2= number % 100 / 10;
   d1=number % 10;
   if(d5!=0)
   {
   System.out.println(number+"是5位数");
   if(d5==d1||d4==d2)
   {
   System.out.println(number+"是回文数");
   }
   else
   {
   System.out.println(number+"不是回文数");
   }
   }
   else if(d4!=0)
   {
   System.out.println(number+"是4位数");
   if(d4==d1||d3==d2)
   {
   System.out.println(number+"是回文数");
   }
   else
   {
   System.out.println(number+"不是回文数");
   }
   }
   else if(d3!=0)
   {
   System.out.println(number+"是3位数");
   if(d3==d1)
   {
   System.out.println(number+"是回文数");
   }
   else
   {
   System.out.println(number+"不是回文数");
   }
   }
   else if(d2!=0)
   {
   System.out.println(number+"是2位数");
   if(d2==d1)
   {
   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.println("\n %d不在1至99999之间"+number);//这行代码怎么不起作用
   }
   }
键入不是1~99999的数时, 还是显示为5位数。 例如:输入123456,输出为:1234567是5位数,1234567不是回文数
}

解决方案 »

  1.   


    if (number >= 1 && number <= 99999) {//用且,不是或
      

  2.   

    大意了
    if(number>=1||number<=99999)
    改为:
    if(number >= 1 && number <= 99999){
      

  3.   

    谢谢! 刚刚改了过来!System.out.printf("\n %d不在1至99999之间",number)这行原代码是printf, 可是报错, 就改成上面的了。 如果是用printf( , )。 应该如果更改?
      

  4.   

    原代码是  System.out.printf(("\n %d不在1至99999之间",number)Exception in thread "main" java.lang.Error: 无法解析的编译问题:
    类型 PrintStream 中的方法 printf(String, Object[])对于参数(String, int)不适用
     
    因为有错误运行不了,我就改成了System.out.println("\n %d不在1至99999之间"+number)
    我现在想知道用原来的代码,输入123456时,会是怎样的提示!
      

  5.   


    System.out.printf("\n %d不在1至99999之间",number);// 这行代码怎么不起作用中间不用加,用逗号分隔.
      

  6.   

    System.out.printf(("\n %d不在1至99999之间",number)
    这就是源代码的话,就是括号不匹配了!看看,前面比后面多一个。改成下面的:System.out.printf("\n %d不在1至99999之间",number)