java生成一定规则的递增数列
数据库中有一张表,这张表有一个字段是C00001,C00002,C00003……这样递增的,给一段自动按照这种规律生成的java代码。类似的也可以 --------------------编程问答-------------------- 如果只是数字的话可以直接用数据库的序列,如果是按照某种格式的字符串那lz得把当前记录位置保存在一个地方,保存在什么地方可以看你自己项目而定吧,本地文件,数据库,内存数据库等等都行,只要不会丢就好了。生成的时候先读取这个数据,然后再按照你自己的规则生成下一个数据即可。就是一个简单的字符串操作。 --------------------编程问答-------------------- 就是说C99999是最多的?随便写下
--------------------编程问答--------------------
String append [] = new String[]{"C00000","C0000","C000","C00","C0","C"};
String str_id = "C00111";
int int_id = Integer.parseInt(str_id.substring(1));
String new_str_id = String.valueOf( int_id + 1);
new_str_id = append[new_str_id.length()] + new_str_id;
System.out.println(new_str_id);
自己控制下约束什么的! --------------------编程问答-------------------- 如果是要自己生成的话分成两段嘛 字母一段 数字一段。当后面数字到达99999的时候 字母就增加。字母增加直接转成char就可以直接加了。
--------------------编程问答--------------------
public static void main(String[] args) {
char c = 'a';
System.out.println(++c);
}
--------------------编程问答-------------------- 看你自己的生成策略咯。 分成2块或位数也整张。 --------------------编程问答-------------------- 可以考虑用单例生成这个序列号,要考虑多线程同步,加个同步锁 --------------------编程问答-------------------- public String getNewEmployeeNo(String employeeNo) {
String str_id = "C09999";
char start = str_id.substring(0,1).charAt(0);
int int_id = Integer.parseInt(str_id.substring(1));
if(int_id==99999){
int_id = 0;
++start;
}
String new_str_id = String.valueOf(++int_id );
String append [] = new String[]{start+"00000",start+"0000",start+"000",start+"00",start+"0",start+""};
new_str_id = append[new_str_id.length()] + new_str_id;
System.out.println(new_str_id);
int i = Integer.parseInt(employeeNo) + 1;
String newEmpNo = String.format("%" + 6 + "s", i).replace(' ', '0');
return newEmpNo;
}
这个是我在公司实习的时候做的项目用到的类似的一块,规则是让6位String类型数字实现自增长,和你的要求比较类似,你试着看下吧,有必要可以自己改改 --------------------编程问答-------------------- 触发器吧,每次max + 1 --------------------编程问答-------------------- 流水号嘛。。。 --------------------编程问答-------------------- final AtomicInteger counter = new AtomicInteger(0);
String s = String.format("C%05d",counter.incrementAndGet()); --------------------编程问答--------------------
补充:Java , Java SE