根据时间生成12位数的随机编号(数字和字母的组合)

沙漠中的小曼巴 2012-01-31 11:08:27
根据时间生成12位数的随机编号(数字和字母的组合),随机编号肯定是不能相同的,随机编号中不能含有O、I、0、U、V等英文字母 ,求大虾指点!!!!!!!!
...全文
475 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cstur4 2012-02-01
  • 打赏
  • 举报
回复
另外,letters的字符你自己设置为满足条件的10个字符就好了。我为方便就随便赋予‘A’开始的十个字母了。
cstur4 2012-02-01
  • 打赏
  • 举报
回复

char[] letters = new char[10];
for(int i=0;i<10;i++)
letters[i] = (char) ('A'+i);

String tStr = String.valueOf(System.currentTimeMillis());//tStr为当前时间
/*因为tStr的字符只有‘0’-‘9’,我们可以把它看成索引到letters中找相应的字符,这样相当于“置换”,所以是不会重复的。*/
StringBuilder sb = new StringBuilder();
for(int i=1;i<tStr.length();i++)
{
sb.append(letters[tStr.charAt(i)-'0']);/*tStr.charAt(i)-'0'转换成相应的数字,如‘9’-‘0’=9*/
}
System.out.println(sb.toString());




cstur4 2012-02-01
  • 打赏
  • 举报
回复

char[] letters = {'A', 'C', '1', '2', '3','4', 'a', 'e', 'f', 'z'};

String tStr = String.valueOf(System.currentTimeMillis());
System.out.println(tStr);
StringBuilder sb = new StringBuilder();
for(int i=1;i<tStr.length();i++)
{
sb.append(letters[tStr.charAt(i)-'0']);
}
System.out.println(sb.toString());


  • 打赏
  • 举报
回复
[Quote=引用 6 楼 cstur4 的回复:]

另外,letters的字符你自己设置为满足条件的10个字符就好了。我为方便就随便赋予‘A’开始的十个字母了。
[/Quote]兄弟你直接写一下行不?我来测试下,根据时间生成12位数的随机编号(数字和字母的组合),随机编号肯定是不能相同的,随机编号中不能含有O、I、0、U、V等英文字母,通过加100
qq26867224 2012-01-31
  • 打赏
  • 举报
回复
类似这样的?

用4位数字作日期 0131 + 用毫秒做多编号 37 +用数字英文数组【1-9A-Za-z】 【 除去你那些不能含有的】抽取出几位来做补充、

生成这样: 013137a8dec2

个人感觉不能重复吧 有毫秒数在那中间控制 要么多精确毫秒几位
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 cstur4 的回复:]

代码大致如下,letters[0]-letters[9]你设置为符合条件的字符就可以了。
Java code

char[] letters = new char[10];
for(int i=0;i<10;i++)
letters[i] = (char) ('A'+i);

String tStr = Str……
[/Quote]
麻烦解释下,不是很懂
cstur4 2012-01-31
  • 打赏
  • 举报
回复
代码大致如下,letters[0]-letters[9]你设置为符合条件的字符就可以了。

char[] letters = new char[10];
for(int i=0;i<10;i++)
letters[i] = (char) ('A'+i);

String tStr = String.valueOf(System.currentTimeMillis());
System.out.println(tStr);
StringBuilder sb = new StringBuilder();
for(int i=1;i<tStr.length();i++)
{
sb.append(letters[tStr.charAt(i)-'0']);
}
System.out.println(sb.toString());

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧