如何用JAVA编写个8位密码生成器(只能是大小写字母和数字)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用JAVA编写个8位密码生成器(只能是大小写字母和数字)相关的知识,希望对你有一定的参考价值。
我只学了一周,相当菜鸟,这是老师出的题目 我先说下我的思路,
前面的定义不写了 直接写核心代码
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 给 某个字符串的某一位 这个功能 如何实现啊,
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;
//多多指教啊
//希望对你有帮助啊 参考技术A 产生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方法就知道该怎么做了 ,学习靠主动探索 给你提示到这里吧
您如何用Java编写命令提示符?
背景
我从Java应用程序启动了命令提示符。现在,我想将命令输入到刚刚生成的命令提示符中。您如何在Java程序刚刚生成的提示中运行命令?
我尝试过的事情
我的代码创建一个启动命令提示符的过程。然后,它获取进程的OutputStream尝试对其进行写入。但是我看不到有任何变化。它应该只是更改目录,然后在新目录中运行一系列命令。
// Block that makes new command prompt
List<String> commands = new ArrayList<String>();
commands.add("cmd.exe");
commands.add("/c");
commands.add("start");
commands.add("cmd.exe");
// Block that creates a writer to write to new command prompt
ProcessBuilder pb = new ProcessBuilder(commands);
Process p = pb.start();
OutputStream os = p.getOutputStream();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os));
// Block that actually writes the commands
writer.write(String.format("cd %s
", PATH);
writer.write(OTHER_COMMANDS); // I'm ommiting the other commands because there's a lot
writer.flush();
writer.close();
我不确定为什么命令没有写到弹出的命令提示符中。我看到一个新的命令提示符弹出,但目录从其开始位置未更改。如何在生成的提示中输入命令?
first
and
以上是关于如何用JAVA编写个8位密码生成器(只能是大小写字母和数字)的主要内容,如果未能解决你的问题,请参考以下文章
如何用jqueryEasyUi框架验证密码只能输入六位包含数字字母?
在26个大小写字母(52个),以及9个数字组成的字符列表中, 随机生成10个8位密码.