基础问题:如何产生一个16进制随机数序列,然后返回成String数据类型? 基础问题:如何产生一个16进制随机数序列,然后返回成String数据类型?俺是刚刚学习java的,请各位多指教,分不多,还请多包涵。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Integer.toHexString(new Random().nextInt());要前缀的话前面加个"0x" 谢谢。如果我要返回的这个string的长度是48个字节的呢? 还有,believefym(feng)说的前缀是"0x",我不知道我要返回的是否要这个东西。能否说一下这里面的思路,是否首先产生一个random,然后转换成为16进制,然后转换成为string 。那么根据俺工作的规定要返回一个48字节的string类型的16进制的random,我改定义哪里的长度来确定最后返回的是48个字节的String?? 48个字节,晕,都已经超出计算机所能直接表达的最大值了,int是多少位多少字节? 楼上的我明白。...俺们的规定是这样的:_____________________________________________________名称 说明 数据类型 长度(字节)s 16进制随机数序列 String 48_____________________________________________________ Random r=new Random();int k=r.nextInt();用这个方法产生随机数,将它变成16进制字符串(Integer.toHexString(k))如果这个字符串不足4位在前面补0生成12个这样的字符串总长度就是48字节了 楼上的。根据你的方法,我每次产生的是8个字节的结果啊:如:2dccdb2f如:5cffe0a8我如果还生成12个,然后加起来就是96个字节相连起来的字符串了,不是俺要的48个啊。 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()) 是啊是啊,我也是这样想的,但就怕不对,因为你告诉我说要生成12个。对了,你说如果不足4位就加0补充。可是我现在每次测试都是8位的,似乎没有4位的可能性哦?那我到底是否还要判断呢?if(s.length()<4){//我该怎么写} 楼上的你的代码也太累赘了吧直接一个for不就ok了 wangbo1118(编程浪子)的代码还是12个啊,合起来就是96位了。。俺要的最终结果是48位的啊。。到底是俺理解错了,还是大虾们理解错了?? 这样可以吗? String s=""; for(int i=0;i<8;i++) { s=s+Integer.toHexString(new Random().nextInt()); } return s; no no no ,我刚才写错了第一,i应该是小于6第二,我看了测试结果,循环当中的每次s都是同一样的随机数 把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; J2SE面试题总结(英文) ArrayList输出问题 关于运算公式的解析算法?如a+b*c,怎样处理优先级? SQLException的怪问题 interface作为方法的参数? 目标:减少HIBERNATE工作量,不重复写DAO,目前只使用SPRING MVC+Hibernate 请教,使用Graphics如何将一条线画的笔直? 请教各位大哥,这个问题怎么解决? 请问:学多长时间java就可以自己赚钱(怎样赚啊!!??)买一个数码照相机 !!?? JAVA 用stati 在多人同时调用时结果会不会乱? Java类中如何调用C语言函数? java有什么类似于c++标准程序库的书?
要前缀的话前面加个"0x"
_____________________________________________________
名称 说明 数据类型 长度(字节)
s 16进制随机数序列 String 48
_____________________________________________________
int k=r.nextInt();
用这个方法产生随机数,将它变成16进制字符串(Integer.toHexString(k))
如果这个字符串不足4位在前面补0
生成12个这样的字符串总长度就是48字节了
如:2dccdb2f
如:5cffe0a8
我如果还生成12个,然后加起来就是96个字节相连起来的字符串了,不是俺要的48个啊。
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())
if(s.length()<4)
{
//我该怎么写
}
直接一个for不就ok了
俺要的最终结果是48位的啊。。到底是俺理解错了,还是大虾们理解错了??
String s="";
for(int i=0;i<8;i++)
{
s=s+Integer.toHexString(new Random().nextInt());
}
return s;
Random random = new Random();
String s="";
for(int i=0;i<8;i++)
{
s=s+Integer.toHexString(random.nextInt());
}
return s;