Random产生随机数的问题!
我想用JAVA写一个程序,用于给用户产生一套复杂的密码,可是在random这遇到了问题。
我的想法是用变量来接受用户输入的要求生成几位数的密码,然后根据那个变量来生成一定位数的密码。可是random我不会用!
大家给我一段示例看看撒。
------解决方案--------------------String s = " ";
for(int i = 0; i < num; i++){
}
------解决方案--------------------import java.util.Random;
public class Rand {
/**
* @param n: 代表要生成的随机数的位数
* 返回的结果是一个n位数的随机数
*/
static int genRandNum(int n)
{
int num=0;
if(n <=0) return 0;
int start=(int)Math.pow(10, n-1);
int end=(int)Math.pow(10, n);
Random ra=new Random();
num=start+ra.nextInt(end-start);
return num;
}
public static void main(String[] args) {
System.out.println(genRandNum(2));
}
}
------解决方案--------------------//密码不仅仅是数字的
//你可以通过ascII码,把不想要的(例如空格,换行等等去掉)
import java.util.Random;
public class TestRandom{
public static void main(String[] args)throws Exception{
//用户输入的长度
int num = 9;
Random r = new Random();
byte[] b = new byte[num];
r.nextBytes(b);
for(int n=0;n <b.length;n++){
if(b[n] <0){
b[n] += 127;
}
}
System.out.println(new String(b));
}
}