java - (Java)条件语句

标签 java loops while-loop if-statement

首先,抱歉,代码有点乱。它的格式不太好。我的任务是随机生成一个由大写和小写字母组成的密码,长度由用户指定。到目前为止,我的代码尚未完成,但那是因为我遇到了问题。

我的密码将显示小写和大写字母,但它不够长。

例如,如果某人想要长度为 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/

相关文章:

java - 尝试嵌入 a-href 时出现 JSP 语法错误

java - For 循环 - 无法识别变量; "not a statement"错误

java - 如何统计数组中元素出现的次数?

php - 在 SQL 循环和输出文件中创建 "blocks"

c++ - 如何从 C++ 中的主脚本修改函数中的变量

java - Spring @Profile 逻辑被破坏

java - Eclipse界面链接打开相关文件

c# - 计算给定的总变化量

python - 有没有办法让一个循环在后台运行,而其他代码继续在 python 中运行?

java - Autowiring 抽象组件