比如,生成一个length为5的字符串"xxxxx",
其中每个 x 是 0-9 或 A-F 范围内的一个十六进制的数字

解决方案 »

  1.   

    Map the random number to ASCII...
      

  2.   

    用一个Arraylist 把 1-9A-Z全包括进去.
    然后用random.nextInt();就行了. 每次挑一个拿出来用.
      

  3.   

    import java.util.Arrays;
    import java.util.List;
    import java.util.Random;public class Test { public static void main(String args[]) {
    List<String> arrList = Arrays.asList("1", "2", "3", "4", "5", "6", "7",
    "8", "9", "0", "A", "B", "C", "D", "E", "F", "G", "H", "I",
    "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U",
    "V", "W", "X", "Y", "Z");
    Random random = new Random();
    for(int i=0 ; i<6; i++){
    String s=arrList.get(random.nextInt(arrList.size()));
    System.out.print(s);
    }
    }
    }下面是运行了三次的结果..CKPJ2P
    TI7YS6D44DRB
      

  4.   

    还是用ascii码比较好,用ArrayList有点麻烦
      

  5.   

    Random rand = new Random();
    System.out.println(
        Integer.toHexString(0x100000 + rand.nextInt(0x100000)).substring(1).toUpperCase());
      

  6.   

    arraylist 比较好,灵活一些,可以控制具体的字符集
      

  7.   


    public class test1 {
    public String getRandomStr(int length) {
    String uuid = UUID.randomUUID().toString();
    return uuid.substring((uuid.length()-length)<0?0:(uuid.length()-length));
    }

    public static void main(String[] args) {
    test1 t = new test1 ();
    System.out.println(t.getRandomStr(5));
    }
    }
    输出:
    2f5a7
      

  8.   

    N人,你写错了哦,明明他说的是0-9 or A-F.怎么你给整到A-Z呢?还有提醒这个NB人。你这个方法太垃圾了!!刚学JAVA的。有点像.
      

  9.   

    N人,你写错了哦,明明他说的是0-9 or A-F.怎么你给整到A-Z呢?还有提醒这个NB人。你这个方法太垃圾了!!刚学JAVA的。有点像.
      

  10.   

    你牛比你写个 
    你也是刚学java吧
      

  11.   


    有病这人(3楼)<--,有什么好装的,大家都是来学习的。本人认为1楼的方法比较好,random number 也可以控制范围,效率也要高一些。
    就是ASCII对应于哪些数字自己要查查的,麻烦一点。
      

  12.   

    我就是刚学..您见谅.. 而且我眼神不好.. 看不到人家说的是 A-F.   还有啊.  我给楼主的例子还是 6位的.. lz要的是5位的..对不起啊..碍您眼了..
      

  13.   

    我说人家说的方法没错 怎么了?LZ要A-F 2楼说A-Z那又怎么样 人家提供思路 关是不是A-Z什么事 你咬文嚼字个P啊 
    你N 你来写个N点的 让我们瞧瞧啊。
      

  14.   

    更简单的方法:
    随机生成一个整数(范围:0~FFFFF),然后转为16进制数,不够5位的补齐...
    尽管随机有点问题...
      

  15.   

    大家看看这种方法
    我有几个不明白的地方
    1.((uuid.length()-length)<0?0:(uuid.length()-length));
    当这个 随机生成的String uuid .length不足5位的时候,就substring(0);就是把整个字符串截取
    但是 它还是不不足5位呀
    如果uuid .length超过5位的时候,比如说7位,就substring(2), 的确是 把整个字符串截取后5位;可是如何保证它 随机生成的String uuid .length一定大于5呢???
    2.
    UUID.randomUUID()
    检索类型 4(伪随机生成的)UUID 的静态工厂这是什么意思?