日期:2014-05-19  浏览次数:20882 次

根据时间生成12位数的随机编号(数字和字母的组合)
根据时间生成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());