业务需求获取已存在的数据编号+1
编号格式:字母加字符串长度未知;字母不定;
public static String strAddOne(String str) {
String[] strings = str.split("");
if (!Character.isDigit(strings[strings.length-1].toCharArray()[0])){
return null;
}
boolean b = false;
List<String> list = Lists.newArrayList(strings);
for (int i = list.size() - 1; i >= 0; i--) {
String s = list.get(i);
if (Character.isDigit(s.toCharArray()[0])){
int integer = Integer.parseInt(s);
if (integer==9){
list.set(i, "0");
b = true;
}else {
list.set(i, Integer.toString(++integer));
break;
}
}else {
if (b){
list.add(i+1,"1");
}
break;
}
}
return StringUtils.join(list,"");
}
import com.google.common.collect.Lists;
import org.apache.commons.lang3.StringUtils;
测试方法
@Test
public void test0005(){
for (int i = 0;i<100;i++ ){
String uuid = UUID.randomUUID().toString().replaceAll("-","");
System.out.println(uuid);
System.out.println(addOne(uuid));
System.out.println();
}
}
结果
3539761d087a4087a31f04bb5c36bb38
3539761d087a4087a31f04bb5c36bb39
25110beed2b34334a007569930cb1677
25110beed2b34334a007569930cb1678
9e67f9bc42074ffda7ebbaf46170d013
9e67f9bc42074ffda7ebbaf46170d014
5672f3b9ba184f91adfcedb716c40b79
5672f3b9ba184f91adfcedb716c40b80
e6ad6a8162dc44988147a3cd7ff957d7
e6ad6a8162dc44988147a3cd7ff957d8
59886d54fd8a4051aa906671c83079f5
59886d54fd8a4051aa906671c83079f6
4ae8d2931ca04dd58c82a65fba68b8fc
null
8ca8ed946a2448c3914ff22b7569a44d
null
bf4a9caf9f414257b6db091ed36e6a49
bf4a9caf9f414257b6db091ed36e6a50
5a0ddc63ffad4fdd8188a98b9b3b2499
5a0ddc63ffad4fdd8188a98b9b3b2500
9667d3787186499bad24071c8ca064cf
null