如何用JAVA编写个8位密码生成器(只能是大小写字母和数字)

来源:百度知道 编辑:UC知道 时间:2024/06/24 07:08:54
我只学了一周,相当菜鸟,这是老师出的题目 我先说下我的思路,

前面的定义不写了 直接写核心代码
int j=0,n=0,i=0;
Srting str=" ";
char ch ;
for (j=0;j<=7;j++)
{ n=Math.random()*122;
i=(int)n
if ((i>=48 && i<=57) || (i>=65 && i<=90) || (i>=97 && i<=122))
ch=(char)i; // 我有2个问题,这样写,出了null 也会被显示出来,为什么不能定义ch!=null;
//我前面定义的j 是str的位数,从0到7,我要把算出来的ch 给str的每一位
//就是str.charAt(j)=ch,连续出8次,形成8位密码,但不知道输出为null时怎么办,
//可能 我表达的不太清楚 ,大家可以留言,不知道我的思路是不是可行,是否有好的方法;

还有一题 1,2,3,4 四个数 组成一个3位数(如123),3个位置不可以相等(112不行),请输入所有结果,(好像是24种结果吧)
没啥思路,大致就这些了 ,

大家有什么好的 java 新手的交流平台也可以告诉 我 ,谢谢拉,先送上100分
谁能告诉 我把一个字符ch 给 某个字符串的某一位 这个功能 如何实现啊,

1.先回答你第一个问题:ch!=null这句语句肯定是错误的,因为ch表示的是一个字符,null表示的是空对象,所以如果写ch!=null,编译的时候肯定是要报错的,你必须写成ch!=' ',前面的为英文引号,引号中间有一个空格。
2.回答你第2个问题,就是怎么使str!=null,你可以在for语句中加一个判断,假如ch== ' ',则这次循环不算,则结果中肯定不会出现null的,见下面的代码。
int j=0,n=0,i=0;
Srting str="";
char ch;
for(j=0;j<=7;j++){
n=Math.random()*122;
i=(int)n;
if((i>=48 && i<=57)||(i>=65 && i<=90) || (i>=97 && i<=122)){
ch=(char)i;
}
//判断来了
else {
j=j-1; //即是这次循环不算,则不可能出现null了

}

}
3.回答你第三个问题:如何输出这24个数呢?见下代码
for (int i = 1; i < 5; i++) {
for (int j = 1; j < 5; j++) {
if (i!=j) {
for (int j2 = 1; j2 < 5; j2++) {
if (j2!=j&&j2!=i) {
System.out.println(""+i+j+j2); //这句话把数字转换为字符串,
//便于输出

}
}
}
}
}

4. 我对你的意思理解为:用一个字符替换指定位的字符,如果是这样的话,replace不能够做到。
replace的方法原型为: