日期:2014-05-17  浏览次数:20705 次

String的一个小问题
String str="SD00001";

注意那个SD后面不是英文字母O而是阿拉伯数字0。

我须要根据str的值来获得下一个值,也就是说如果str等于SD00001的话,须要得到SD00002。

字符串截取出00001后,如果用Integer的parseint()方法得到的是1,在加1的话变成2,转换成String后还须要判断字符串长度,然后添加上几个0,这样比较麻烦。

有没有什么简单点的方法啊大牛们?

先谢谢了

------解决方案--------------------
探讨
Java code
DecimalFormat df = new DecimalFormat("'SD'00000");
Number x = df.parse("SD00001");
System.out.println(x);
System.out.println(df.format(x.intValue()+1));

------解决方案--------------------
探讨
引用:
Java code
DecimalFormat df = new DecimalFormat("'SD'00000");
Number x = df.parse("SD00001");
System.out.println(x);
System.out.println(df.format(x.intValue()+1));
我去 这个能跑么 太……

------解决方案--------------------
在数据库中建个序列,编号从00001开始,累加1,每次用的时候取出在前面加上SD,或者将其存到数组里,每次累加后加上SD
------解决方案--------------------
自古沙发出淫才啊,一楼威武
------解决方案--------------------
如果你保证数值在范围中,就这样吧!
如果有可能超出5个数值范围的,那就截取SD,然后再做处理吧!
Java code

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);

------解决方案--------------------
晕死~从左往右截取数字,+1,重组,搞定!