int n =(int)(Math.random()*10000000)
if(n<10000000)
n += (int)(Math.random()*10)*1000000这样可以吗?
if(n<10000000)
n += (int)(Math.random()*10)*1000000这样可以吗?
解决方案 »
- 如何描述OA中的权限管理和流程管理的项目经验?
- 求一份 Java log4j 详细配置 以及ImageMagick的用法 还有获取系统变量方法
- The server encountered an internal error () that prevented it from fulfillin 大家帮
- spring整合hibernate出现的错误高手帮忙看下谢了
- 紧急求助,部署JAVAEE项目的时候出问题了
- 本人开个J2EE技术群,请大家+入,本群专门研究、讨论各位框架
- 请问什么是硬编码?
- 很高深的eclipse插件问题
- 《J2EETutorial》上的问题,谁有兴趣一起来帮偶解决啊.
- 帮忙看看,这个错误是什么原因导致的?解决就给分!!!
- 关于用SAX解析XML的问题!
- 还是那个helloworld
不足的前面补0,
还是要产生几位数的,如果是这样,可以这么做啊:
int n =100+(int)(Math.random()*900)
if (n < 1000000)
n += (int) ((Math.random() * 9) * 1000000) + 1000000;
这样可以
int n = (int) (Math.random() * 9000000) + 1000000;
结果出现了有的数据位数 少两位或一位 不等。是不是随机数中有00这样的数,就当0看了?我先试试上面大家的方法。
然后用 a[index];
里面那个index来int index=(int)(Math.random()*10)
然后用 a[index];
里面那个index来 int index=(int)(Math.random()*10)?
望详解。用这个方法可以生成不重复的数吗?我也是最后变成String,再写入数据库的。
(拿10个数字做例子)
是不是要将1-10这10个数字随机的添到一个元素个数为10的数组中,
int a [] = { 4, 3, 7, 5, 1, 0, 2, 9 ,8, 6 } 实现这个样子的结果
我用了循环产生百万的数据。
//舔加数据
PreparedStatement pstmt=con.prepareStatement("insert into id values(?)");
int a,b,c,d,e,f;
for(a=0;a<10;a++){
for(b=0;b<10;b++){
for(c=0;c<10;c++){
for(d=0;d<10;d++){
for(e=0;e<10;e++){
fro(f=0;f<10;f++){
int n =100000000+(int)(Math.random()*900000000);
String sn =n+"01"+a+b+c+d+e+f;
pstmt.setString(1,id);
pstmt.execute();
}
}
}
}
}
}
out.println("添加数据成功");
pstmt.close();
con.close();
}
方法太笨了。循环的时候能随机产生数据,不重复,位数固定,写一个这样的函数,思路是什么?
{
String strInt = "";
Integer i = new Integer((int)(Math.random() * 100000000));
strInt = String.valueOf(i);
if (strInt.length()!=8)
{
return getRandom();
}
else
{
return strInt;
}
}
if (n < 1000000)
n += (int) ((Math.random() * 9) * 1000000) + 1000000;
这样可以
这样用小标index来random
搞成String然后存数据库,设置这个key,不就会存入重复了
if(n<1000000){
n += 1000000;
}
肯定是固定位数了,不知道是否合用
org.apache.commons.lang.RandomStringUtils
int rIndex=(int)(Math.random()*10);
char temp=num[i];
num[i]=num[rIndex];
num[rIndex]=temp;
}之后从把char[]-->String,取出前N位,就是N位的随机数,而且各位各不相同.
int randomIndex = -1;
int i = -1;
String randomID = "";
char[] randomElement =
{
'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h',
'i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'
}; // 定义一个一维密码字典,用来产生随机代码 for(i = 0;i < 3;i++)
{
/* 利用random()方法(函数)产生一个随机的整型数,用来确定字典数组的对应元素 */
randomIndex = ((new Double(Math.random() * 998)).intValue()) % 36;
randomID = String.valueOf(randomElement[randomIndex]) + randomID;
}
%>
for里的3改一下就行.想得几位就几位.最后out.print(randomID)就是你得的随机数了.