日期:2014-05-20  浏览次数:20780 次

16进制与字符串问题,gukuitian在么?高手求指教
java.util.Random random=new Random();
String str=String.format("0x%02x",random.nextInt(256));
我用这个循环4次得出4个16进制数,我现在想把这4个转换为一个String类型的字符串,怎么搞?求指教
------解决方案--------------------
1.问题说的不是很清楚啊,你得出的str不就是String类型的吗
2,4个str要拼在一起吗?+号连接 ,StringBuffer也可以(减少临时变量)
------解决方案--------------------
还被点名了。。
有点明白你的意思了,应该要的是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);