就是String[] str={1,2,3,4,5,6,7,8,9,0,A,B,C,D,E,F};随机生成3000个不同的MAC,格式为XX-XX-XX-XX-XX-XX,麻烦各位大侠给个生成的方法,谢谢啦

解决方案 »

  1.   

    你搞错了Mac的构成,实际上是随机生成6个0~255的随机数
    Random rand = new Random();
    StringBuilder buff = new StringBuilder();
    for (int i = 0; i <6; i++) {
      buff.append(Integer.toHexString(rand.nextInt(256)).append('-');
    }
    buff.setLength(buff.length() - 1);
      

  2.   

    至于你说3000个不同的mac,那就再
    Set<String> all = new HashSet<String>();
    Random rand = new Random();
    for( int z = 0; z < 3000;) {
    StringBuilder buff = new StringBuilder();
    for (int i = 0; i <6; i++) {
      buff.append(Integer.toHexString(rand.nextInt(256))).append('-');
    }
    buff.setLength(buff.length() - 1);
    if(all.add(buff.toString()))
      z++;
    }
      

  3.   


    这个是有点问题的,如果生成的每个-前一个数是0,就不符合正常mac的,如:6-d-75-dd-63-41
      

  4.   

    而实际我想要的是06-0d-75-dd-63-41
      

  5.   

    自己补个零有这么复杂吗?你不会连这样的代码都写不出来吧!
    int next = rand.nextInt(256));
    if(next >= 16)
      buff.append(Integer.toHexString(next).append('-');
    else
      buff.append('0').append(Integer.toHexString(next)).append('-');