先取出String s=OP00001在截取后五位String temp=s.substring(3,s.length());
int i=Integer.parseInt(temp);
i+=1;
String temp1=String.valueOf(i); 
temp=s.substring(0,2)+temp1

解决方案 »

  1.   

    这个方法太简单了,在多线程多用户的时候又有很多的问题出现,希望有更彻底的方法
    简单的Integer主键加一是如何实现的啊??谢谢
      

  2.   

    如果按照yshgfly(我是谁)说得那样的话 出来的结果 不就变成
    OP2 而不是OP00002了 我需要的是OP00002啊
      

  3.   

    int MAX_CODE = '9';
    int MIN_CODE = '0';
    public static String getNextOID(String oldOID)
    {
    String oid = oldOID;
    byte[] serialCode = oid.getBytes(); //+1
    for (int i = serialCode.length - 1; i >= 0; i--)
    {
    boolean carryUp = false;
    byte code = (byte) (serialCode[i] + 1);
    byte newCode = code;
    if (code > MAX_CODE)
    {
    newCode = MIN_CODE;
    carryUp = true;
    }
    serialCode[i] = newCode;
    if (!carryUp)
    break;
    }
    oid = new String(serialCode);
    return oid;
    }
    位数控制跟溢出处理自己写,因为跟你需求相关。