1 建一个简单的表(或文件)
    编号ID, int
    编号当前值, int
2 java中用一个同步方法一次取一个,并且将表中"编号当前值"加1
3 将取到的指转换成String,用就行了

解决方案 »

  1.   

    for(int i=1;i++;i<1000000){
    String orgStr = Integer.toString(i);
    String resultStr = new StringBuffer("000000").replace(6-orgStr.length(),5,orgStr).toString();//resultStr即为所需的编号

    }
      

  2.   

    生成的ID使用DecimalFormat df = new DecimalFormat("000000")进行转换!
      

  3.   

    public class Test {
      public static void main(String[] args) {
      String strId = "001002";//当前的字段,呆会生成下一字段
      int i = Integer.parseInt(strId);
    0A  i = i+1;
      strId = Integer.toString(i);
      int j = strId.length();//长度问题
      System.out.println(j);
      if(j<6) {//补零
        String str = "000000";
        str = str.substring(j);
        strId = str+strId;
      }
      System.out.println(strId);//strId即为所求
      }
    }==============================
    在下所说,也许并非正确,请从建议的角度批判地吸收!
      

  4.   

    faint
    怎么多了个OA?
    调试信息也没有去掉……==============================
    在下所说,也许并非正确,请从建议的角度批判地吸收!
      

  5.   

    如果你用的是jbuilder,那么你可以用数据感知控件,里面可以设置掩码display,非常简单,你可以参考书籍(只需设置即可)
    如果你不用,想在程序里写的话,可以如下:
    首先定义好所需的变量,我这里省略:(这是我所写模块中的一部分,实现自增长(非数据库中所值的自增长,而由程序控制))
          rst = stmt.executeQuery("select max(No) from table" );
          rst.first();
          if(rst.getInt(1)>0) {
    initSn = String.valueOf(rst.getInt(1)+1).trim() ;
    length = initSn.length();
    for(int i=0 ; i<6-length ; i++) {
      initSn = "0"+initSn ;
    }
          }else {
    initSn = "000001" ;
          }
      

  6.   

    大家说的都很对,但我有一个更好的办法,就是直接通过一句SQL操作!呵呵!
    create table test1
    (
      id varchar2(6) primary key 
    }
    insert into test1 values('000001');//this is the master data
    以下就是我的SQL!
    insert into test1
     select substr(to_char(max(id)+'1','000000'),2) from test1;