首先,抱歉,代码有点乱。它的格式不太好。我的任务是随机生成一个由大写和小写字母组成的密码,长度由用户指定。到目前为止,我的代码尚未完成,但那是因为我遇到了问题。
我的密码将显示小写和大写字母,但它不够长。
例如,如果某人想要长度为 14 的密码,我只会得到小于该长度的密码。它从来都不是它应该的长度。
import java.util.Scanner;
import java.util.Random;
public class Password{
public static void main(String [] args){
Scanner in = new Scanner(System.in);
int passwordLength = 0;
Random randNum = new Random();
int randNumAscii = 0;
String generatedPassword = "";
System.out.print("Password Length (1-14): ");
passwordLength = in.nextInt();
for(int count = 0; count < passwordLength; count++){
randNumAscii = randNum.nextInt(123);
if(randNumAscii >= 65 && randNumAscii <= 90 || randNumAscii >= 97 && randNumAscii <= 122)
generatedPassword += (char)randNumAscii;
else
randNumAscii = randNum.nextInt(123);
}
System.out.println(generatedPassword);
}
}
最佳答案
这是因为您仅在生成的密码中添加位于您选择的范围内的字符。如果字符在 randNumAscii >= 65 && randNumAscii <= 90 || randNumAscii >= 97 && randNumAscii <= 122
之外随机化你永远不会将它附加到字符串中。
您可以做的是在 for 循环内添加一个 while 循环,一直持续到满足该条件为止,或者继续 for 循环但将 count 变量减一,以便“使用该索引”生成一个新字符,以便说话。
关于java - (Java)条件语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12878202/