依据时间生成12位数的随机编号(数字和字母的组合)
根据时间生成12位数的随机编号(数字和字母的组合)
根据时间生成12位数的随机编号(数字和字母的组合),随机编号肯定是不能相同的,随机编号中不能含有O、I、0、U、V等英文字母 ,求大虾指点!!!!!!!!
------解决方案--------------------
代码大致如下,letters[0]-letters[9]你设置为符合条件的字符就可以了。
根据时间生成12位数的随机编号(数字和字母的组合),随机编号肯定是不能相同的,随机编号中不能含有O、I、0、U、V等英文字母 ,求大虾指点!!!!!!!!
------解决方案--------------------
代码大致如下,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 = 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());
------解决方案--------------------
- Java code
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());