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

我只学了一周,相当菜鸟,这是老师出的题目我先说下我的思路,前面的定义不写了直接写核心代码intj=0,n=0,i=0;Srtingstr="";charch;for(j=... 我只学了一周,相当菜鸟,这是老师出的题目 我先说下我的思路,

前面的定义不写了 直接写核心代码
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 给 某个字符串的某一位 这个功能 如何实现啊,
展开
 我来答
lusongandlinux
2009-07-11 · TA获得超过100个赞
知道答主
回答量:265
采纳率:0%
帮助的人:163万
展开全部
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的方法原型为:
String replace(char oldChar, char newChar) ;
意思为:返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
如果要完成楼主的要求,请看以下代码,我写了一个替换函数:
String tihuan(String string,int index,char ch){
//index表示你要替换的字符位置,第一位为1
char[] chs=string.toCharArray();
chs[index-1]=ch;
String string1=new String(chs);
return string1;

}
//多多指教啊
//希望对你有帮助啊
woshiwzy
2009-07-11 · TA获得超过227个赞
知道小有建树答主
回答量:210
采纳率:0%
帮助的人:191万
展开全部
产生8位密码的程序刚刚给你写的
package com.app;

import java.util.Random;

public class Create8bitPassword {

public String create8p() {
StringBuffer password = new StringBuffer();
while (password.length() < 8) {
int x = getRandomNumber();
if (x >= 0 && x <= 9) {
String n = "" + x;
password.append(n);
}
if (x >= 65 && x <= 90) {
char c = (char) x;
password.append(c);
}

}

return new String(password);
}

public int getRandomNumber() {

Random rand = new Random();
int n = rand.nextInt(91);
return n;
}

public static void main(String args[]) {

// System.out.println((int) 'A');
// System.out.println((int) 'Z');

Create8bitPassword ct = new Create8bitPassword();
System.out.println(ct.create8p());
}
}

另外,一个字符ch 给 某个字符串的某一位,你查一查String 类的replace方法就知道该怎么做了 ,学习靠主动探索 给你提示到这里吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式