String str="SD00001";注意那个SD后面不是英文字母O而是阿拉伯数字0。我须要根据str的值来获得下一个值,也就是说如果str等于SD00001的话,须要得到SD00002。字符串截取出00001后,如果用Integer的parseint()方法得到的是1,在加1的话变成2,转换成String后还须要判断字符串长度,然后添加上几个0,这样比较麻烦。有没有什么简单点的方法啊大牛们?先谢谢了

解决方案 »

  1.   

        DecimalFormat df = new DecimalFormat("'SD'00000");
        Number x = df.parse("SD00001");
        System.out.println(x);
        System.out.println(df.format(x.intValue()+1));
      

  2.   


    run:
    1
    SD00002
    成功生成(总时间:1 秒)
    果然给力强
      

  3.   

    在数据库中建个序列,编号从00001开始,累加1,每次用的时候取出在前面加上SD,或者将其存到数组里,每次累加后加上SD
      

  4.   

    这个df.format(x.intValue()+1)是死的,也就是说你每次得到的都是SD00002,下次必须得用SD00002才能得到SD00003
      

  5.   

    如果你保证数值在范围中,就这样吧!
    如果有可能超出5个数值范围的,那就截取SD,然后再做处理吧!String s1 = "SD00099";
    char[] s = s1.toCharArray();
    for (int i = s.length - 1; i >=0; i--) {
        if (++s[i] > 57) {
            s[i] = 48;
            continue;
        }
        break;
    }
    s1 = new String(s);
    System.out.println(s1);
      

  6.   


    淫才真多、长见识了、本来以为自己String学的还行,结果看了楼上几位的回答才知道真是井底之蛙了
      

  7.   

    哥哥,把Number x = df.parse("SD00001");里的SD00001换成变量不就OK了啊,一楼的大哥只是举个例子,写程序一般是不会写死的吧