举个例子:
String viewsNum ="3";
int invoiceNum = Integer.parseInt("0010");
int invoiceNumX;
for(int i=0; i<Integer.parseInt(viewsNum);)
{
invoiceNumX = invoiceNum++;
i++; 
System.out.println("mm="+invoiceNumX);
}
比如: 上面的代码 输出:
mm=10
mm=11
mm=12我现在想这样:  假如是0010开始的话, 输出的应该是 0010,0011,0012这样.不能去掉前面的零!
还有,具体前面有多少位零 不确定的!!就是假如是,  00010, 输入就是 00010.是000010,输出就是000010这样.
请大家帮我看下 多谢!

解决方案 »

  1.   

    做不到
    可以参考NumberFormat,要预先指定格式
      

  2.   

    写一段程序判断有几个零,然后作为构造函数参数实例化NumberFomrat,输出时用它格式化输出
      

  3.   


    public static void main(String[] args)
    {
    String viewsNum ="3"; 
    String strNumber="0010";
        int invoiceNum = Integer.parseInt(strNumber); 
        int invoiceNumX; 
        for(int i=0; i <Integer.parseInt(viewsNum);i++) 
        { 
         invoiceNumX = invoiceNum++; 
         System.out.println("mm="+getFormat(strNumber)+invoiceNumX); 
         } 
    }

    public static String getFormat(String strNumber)
    {
    int length=strNumber.length()-String.valueOf(Integer.parseInt(strNumber)).length();
    String StrFormat="";
    for(int i=0;i<length;i++)
    {
    StrFormat+="0";
    }
             return StrFormat;
    }结果是:
    mm=0010
    mm=0011
    mm=0012
      

  4.   

    这样做.String viewsNum ="3"; 
    int invoiceNum = Integer.parseInt("0010"); 
    int len="0010"; //这个是"0010"的长度.
    int x=1;        //如果len是4,想得到10000;
    for(int i=0;i<len.length();i++) x*=10;
    int invoiceNumX; 
    for(int i=0; i <Integer.parseInt(viewsNum);) 

    invoiceNumX = invoiceNum++; 
    i++; 
    System.out.println("mm="+(""+x+invoiceNumX).substring(1)); //把最高位的去掉.

      

  5.   

    我也是累加上去啊
    就是如果最后是9的话,就补充前面的零
    请问zhaolinger2   你有什么好办法? 可以指教下嘛?
      

  6.   

    String viewsNum ="3"; 
    int invoiceNum = Integer.parseInt("0010"); 
    int len="0010".length(); //这个是"0010"的长度.
    int x=1;                //如果len是4,想得到10000;
    for(int i=0;i<len.length();i++) x*=10;
    int invoiceNumX; 
    for(int i=0; i <Integer.parseInt(viewsNum);) 

    invoiceNumX = invoiceNum++; 
    i++; 
    System.out.println("mm="+(""+x+invoiceNumX).substring(1)); //把最高位1的去掉.
    }
      

  7.   

    比如invoiceNum是99,100等,都加10000成了:10099,10100,转成字符串,再把最高位的1去掉.
      

  8.   

    楼上的
    for(int i=0;i <len.length();i++)
    这个好象不行吧?
    另外 你程序代码运行了嘛? 跟我要求的!! 一样嘛?
    指教中....
      

  9.   

    是的,for(int i=0;i <len;i++) x*=10;
      

  10.   

    错误信息:   不能调用基本类型 int 的 length()bigbug9002 你这个好象不行吧?
    你明白我的需求嘛?
      

  11.   

    closewbq  这位大侠
    你可以帮我再看看嘛?
    感谢不尽!
      

  12.   

    楼上的2位大哥
    具体的代码可以写给我嘛?
    closewbq  这位大侠的代码 已经实现一半了
    现在就是
    如果是0099 这种情况 要判断本来是 0099,00100,00101
    我现在要求是:  0099,0100,0101 这样 
    求大家了!!!
      

  13.   

    用比较死的方法挨着判断,反正你的位数也不多if(invoiceNum <  10) {
    invoiceNumX = "000" + invoiceNum ;
    } else if(invoiceNum <  100) {
    invoiceNumX = "00" + invoiceNum ;
    } else if(invoiceNum <  1000) {
    invoiceNumX = "0" + invoiceNum ;
    }
      

  14.   

    String viewsNum ="3"; 
    int invoiceNum = Integer.parseInt("0010"); 
    int len="0010".length(); //这个是"0010"的长度. 
    int x=1;                //如果len是4,想得到10000; 
    for(int i=0;i <len;i++) x*=10; 
    int invoiceNumX; 
    for(int i=0; i <Integer.parseInt(viewsNum);) 

    invoiceNumX = invoiceNum++; 
    i++; 
    System.out.println("mm="+(""+x+invoiceNumX).substring(1)); //把最高位1的去掉. 
    }你按这个改一下你的程序.
      

  15.   


    这个代码 根本实现不了?
     bigbug9002  麻烦你 可以给出一个详细的,全的代码嘛?
    我感谢不尽
    好人做到底吧
    你这个我试了 输出来试: mm=000010
    mm=000011
    mm=000012前面怎么多了2个零?  另外,如果我输入的是0099,你能输出来是 0099,0100,0101嘛??
      

  16.   

    public class Test4{
    public static void main(String[] args){
    String viewsNum ="3";
    int invoiceNum = Integer.parseInt("0099");
    int len="0010".length();
    int x=1;
    for(int i=0;i <len;i++) x*=10;
    int invoiceNumX;
    for(int i=0; i <Integer.parseInt(viewsNum);i++){
    invoiceNumX = invoiceNum+i;
    System.out.println("mm="+(""+(x+invoiceNumX)).substring(1));
    }
    }
    }
    结果如下:
    D:\javafile>java Test4
    mm=0099
    mm=0100
    mm=0101D:\javafile>
      

  17.   

    public class Test4{
    public static void main(String[] args){
    String viewsNum ="3";
    int invoiceNum = Integer.parseInt("000999");
    int len="000999".length();
    int x=1;
    for(int i=0;i <len;i++) x*=10;
    int invoiceNumX;
    for(int i=0; i <Integer.parseInt(viewsNum);i++){
    invoiceNumX = invoiceNum+i;
    System.out.println("mm="+(""+(x+invoiceNumX)).substring(1));
    }
    }
    }结果如下:
    D:\javafile>javac Test4.javaD:\javafile>java Test4
    mm=000999
    mm=001000
    mm=001001D:\javafile>
      

  18.   

    "0010".length();
    这句话 怎么解释?
    什么意思? 是固定的嘛?必须这样嘛?
      

  19.   

    int invoiceNum = Integer.parseInt("00066");
    这个 怎么输出是
    mm=0066
    mm=0067
    mm=0068我要求是: 
    mm=00066
    mm=00067
    mm=00068  这样
    反正 Integer.parseInt("00066"); 这里面的数最多是8位!  前面最多7个零 这样!
      

  20.   

    bigbug9002 
    非常的感谢你
    呵呵  积分!!!
    bigbug9002 ,真的太谢谢你了!!
      

  21.   

    学习了,改动了上面6楼的代码
    public class Example02 { /**
     * @param args
     */
    public static void main(String[] args)
        {
            String viewsNum ="2000"; 
            String strNumber="00990010";
            int invoiceNum = Integer.parseInt(strNumber); 
            int invoiceNumX; 
            for(int i=0; i <Integer.parseInt(viewsNum);i++) 
            { 
             invoiceNumX = invoiceNum++; 
             String str1=getFormat(strNumber);
             String str2=String.valueOf(invoiceNumX);
             if(!((str1.length()+str2.length())%4==0)){
              switch((str1.length()+str2.length())%4){
              case 1:str1=str1.substring(1);break;
              case 2:str1=str1.substring(2);break;
              case 3:str1=str1.substring(3);break;
              
              }
             }
             
             System.out.println("mm="+str1+invoiceNumX); 
             } 
        }
        
        public static String getFormat(String strNumber)
        {
            int length=strNumber.length()-String.valueOf(Integer.parseInt(strNumber)).length();
            String StrFormat="";
            for(int i=0;i<length;i++)
            {
                StrFormat+="0";
            }
             return StrFormat;
        }
    }