java.util.Random random=new Random();
String str=String.format("0x%02x",random.nextInt(256));
我用这个循环4次得出4个16进制数,我现在想把这4个转换为一个String类型的字符串,怎么搞?求指教

解决方案 »

  1.   

    1.问题说的不是很清楚啊,你得出的str不就是String类型的吗
    2,4个str要拼在一起吗?+号连接 ,StringBuffer也可以(减少临时变量)
      

  2.   

    还被点名了。。
    有点明白你的意思了,应该要的是32位长的二进制数的16进制表示形式。
    可以直接生成  0--2^32的随机数,然后再Double.Double.toHexString()结果应该和上面的4个直接拼起来是一样的, Random random=new Random();
    String str=
         String.format("%02x",random.nextInt(256))+//256=2^8   4*8=32
                 String.format("%02x",random.nextInt(256))+
                 String.format("%02x",random.nextInt(256))+
                 String.format("%02x",random.nextInt(256));
    System.out.println(str);
    //同理x
    String str2=
         String.format("%04x",random.nextInt(65536))+//65536=2^16  16*2=32
         String.format("%04x",random.nextInt(65536));
    System.out.println(str2);
    String str3=String.format("%08x",random.nextLong()&(4294967296l-1));//4294967296=2^32
    System.out.println(str3);
      

  3.   

    for(int i=0;i<4;i++){
    java.util.Random random=new Random();
     String str=String.format("0x%02x",random.nextInt(256));
     //System.out.println(str);
     int codePoint = Integer.parseInt(str.substring(2), 16);
     char[] c= Character.toChars(codePoint);
     for(int a=0;a<c.length;a++){
     System.out.println(c[a]);
     }
    }
    我今天早上一来,灵光一现,自己实现了我想要的~~~谢谢大家了