我目前正在编写一个程序,该程序需要我从字母表中生成随机字母并将其分配给其他字母。 (这是一个加密程序)。问题是,一旦我生成了前几个字母,就会再次生成一些字母。

例如,
我想让a = c(随机生成的字母)
但是既然使用了c,我不希望其他25个字母等于c。
所以我不要b = c
我不知道该怎么办,因为这似乎很容易,但我无法做到。

这是我的代码。

for (int i = 0; i<26; i++)
        {
            Random r = new Random();
            cipherArray[i] =(char)(cipherText.charAt(r.nextInt(cipherText.length())));
        }
            return cipherArray;


任何帮助表示赞赏,谢谢。

最佳答案

您可以尝试以下方法。

public static void main(final String[] args) {
    List<Character> chars = new ArrayList<>(26);
    for (char c = 'a'; c <= 'z'; c++) {
        chars.add(c);
    }

    Collections.shuffle(chars);
}


它创建一个字符列表,从“ a”到“ z”,并将其洗牌。

10-08 09:04
查看更多