[求助]序列号的生成
问题描述:
要生成一个唯一的序列号,构成:地区号(比如010)+设备号(比如01)+N位的序列号(XXXXX)
例如:北京地区用户要用设备2号; 则生成序列号如:01002XXXXXXXXXXXXXX 并且保证这个号码的唯一。
请各位大虾提供一下帮助。不胜感激!
要生成如下的要求的ID
**************************************************
755 01 01
A B C
A:3位,所在分中心的地区区号
B:2位,一个地区可能有多个分中心,所以需指明序号
C:2位,编号种类,
01――父域ID,
02――子域ID,
03――用户编码,
04――前端设备编码
***************************************************
父域ID 00001
A
A:5位,序号
***************************************************
子域ID 00001
A
A:5位,序号
***************************************************
用户编码
0 01 00001 00001
A B C D
A:1位,用户种类,
0――父域下用户
1――子域下用户
B:2位,用户类型
00――默认的管理员用户
01――普通用户
C:5位,所属的域序号
D:5位,用户序号
****************************************************
前端设备编码
0 756 0 01 000001
A B C D E
A:1位,表明设备情况
0――本地设备
1――异地设备
B:3位,若是异地设备,则需指明异地区号,若是本地设备,则是000
C:1位,设备种类,
0――主设备,
1――父设备,即镜头设备
2――子设备
D:2位,设备类型,具体见附录
E:6位,若是父设备,则前两位00,后四位为序号,若是子设备,则前四位为所属父设备序号,后两位为序号
[此贴子已经被作者于2007-11-8 18:36:10编辑过]
搜索更多相关主题的帖子:
序列号 北京 分中心 设备
----------------解决方案--------------------------------------------------------
List list = new ArrayList();
String areaNum = "010";
String fixtureNum = "02";
String str = areaNum + fixtureNum + Math.random() * 10000;
list.add(str);
for (int i = 0 ; i < list.size(); i ++){
if (str.equals(list.get(i).toString())){
System.out.println(str + "was exict");
break;
}
}
list.add(str);
----------------解决方案--------------------------------------------------------
最好是根据当前时间来
后面的那个N位数用 System.currentTimeMillis()
当然要考虑到并发的问题,最好写个类封装一下,采用单例模式,生成函数使用synchronized关键字修饰
----------------解决方案--------------------------------------------------------
今天找到了关于具体的要求了,希望帮忙看下,谢谢各位了!
出出点子,到底怎样才比较好?
----------------解决方案--------------------------------------------------------
用java.util.UUID这个类
----------------解决方案--------------------------------------------------------
谢谢了,但是那个要求生的ID是有规则的,不能随便生成UUID啊?
----------------解决方案--------------------------------------------------------