基础问题:如何产生一个16进制随机数序列,然后返回成String数据类型?俺是刚刚学习java的,请各位多指教,分不多,还请多包涵。

解决方案 »

  1.   

    Integer.toHexString(new Random().nextInt());
    要前缀的话前面加个"0x"
      

  2.   

    谢谢。如果我要返回的这个string的长度是48个字节的呢?
      

  3.   

    还有,believefym(feng)说的前缀是"0x",我不知道我要返回的是否要这个东西。能否说一下这里面的思路,是否首先产生一个random,然后转换成为16进制,然后转换成为string 。那么根据俺工作的规定要返回一个48字节的string类型的16进制的random,我改定义哪里的长度来确定最后返回的是48个字节的String??
      

  4.   

    48个字节,晕,都已经超出计算机所能直接表达的最大值了,int是多少位多少字节?
      

  5.   

    楼上的我明白。...俺们的规定是这样的:
    _____________________________________________________
    名称      说明               数据类型    长度(字节)
    s         16进制随机数序列   String      48
    _____________________________________________________
      

  6.   

    Random r=new Random();
    int k=r.nextInt();
    用这个方法产生随机数,将它变成16进制字符串(Integer.toHexString(k))
    如果这个字符串不足4位在前面补0
    生成12个这样的字符串总长度就是48字节了
      

  7.   

    楼上的。根据你的方法,我每次产生的是8个字节的结果啊:
    如:2dccdb2f
    如:5cffe0a8
    我如果还生成12个,然后加起来就是96个字节相连起来的字符串了,不是俺要的48个啊。
      

  8.   

    Integer.toHexString(new Random().nextInt())+
                        Integer.toHexString(new Random().nextInt())+
                        Integer.toHexString(new Random().nextInt())+
                        Integer.toHexString(new Random().nextInt())+
                        Integer.toHexString(new Random().nextInt())+
                        Integer.toHexString(new Random().nextInt())+
                        Integer.toHexString(new Random().nextInt())+
                        Integer.toHexString(new Random().nextInt())+
                        Integer.toHexString(new Random().nextInt())+
                        Integer.toHexString(new Random().nextInt())+
                        Integer.toHexString(new Random().nextInt())+
                        Integer.toHexString(new Random().nextInt())
      

  9.   

    是啊是啊,我也是这样想的,但就怕不对,因为你告诉我说要生成12个。对了,你说如果不足4位就加0补充。可是我现在每次测试都是8位的,似乎没有4位的可能性哦?那我到底是否还要判断呢?
    if(s.length()<4)
    {
    //我该怎么写
    }
      

  10.   

    楼上的你的代码也太累赘了吧
    直接一个for不就ok了
      

  11.   

    wangbo1118(编程浪子)的代码还是12个啊,合起来就是96位了。。
    俺要的最终结果是48位的啊。。到底是俺理解错了,还是大虾们理解错了??
      

  12.   

    这样可以吗?
      String s="";
      for(int i=0;i<8;i++)
      {
       s=s+Integer.toHexString(new Random().nextInt());
      }
      return s;
      

  13.   

    no no no ,我刚才写错了第一,i应该是小于6第二,我看了测试结果,循环当中的每次s都是同一样的随机数
      

  14.   

    把new Random()放在循环外面,里面就用一个reference.nextInt()
    Random random = new Random();
    String s="";
      for(int i=0;i<8;i++)
      {
       s=s+Integer.toHexString(random.nextInt());
      }
      return s;