如何将 space 字符放入数组元素中?

How to put the space character into an element of arrays?

我目前正在做一个程序,我必须加密用户输入的字符串。 我可以随机化字母并让 a = c(随机生成的字母)等...但我似乎无法做的一件事是用户给出的字符串中是否有 space。 所以如果用户输入 "Encrypt this string" ,我会得到一个错误。 如何将 space 字符放入我的数组中以便在输入时更改它?

    char [] arrayAlphabet;
    arrayAlphabet = new char [26];
    for (int i=0; i<26; i++)
    {
        arrayAlphabet[i] = (char)('a' + i);
    }


   public static char [] createCipher(char [] arrayAlphabet, char [] cipherAlphabet)
{
    List<Character> chars = new ArrayList<>(26);
    for (char c = 'a'; c <= 'z'; c++)
    {
        chars.add(c);
    }
    Collections.shuffle(chars);

    for (int i = 0; i<26; i++)
    {
        cipherAlphabet[i] = chars.get(i);
    }
    return cipherAlphabet;  

谢谢,如有任何帮助,我们将不胜感激。

为什么不使用 StringtoCharArray() 而不是 c = 'a'c <= 'z' 的 for 循环:

public static char[] createCipher() { // You weren't using your parameters, so I removed them. You can add them back if you want
    char[] chars = "abcdefghijklmnpoqrstuvwxyz ".toCharArray(); // Add more characters to this string if you need them
    return shuffleArray(chars);
}

public static char[] shuffleArray(char[] array) {
    Random rnd = new Random();
    for (int i = array.length - 1; i > 0; i--) {
        int index = rnd.nextInt(i + 1);
        char temp = array[index];
        array[index] = array[i];
        array[i] = temp;
    }
    return array;
}

(您还需要导入 java.util.Random 才能正常工作)

"...".toCharArray() 的作用是获取包含您想要的字符的字符串,然后将它们转换为 char 数组 ;)。 shuffleArray()Fisher-Yates shuffle specifically for char[], which is probably going to be faster than converting char[] to List<Character> and back again. (implementation from )

的一般实现

(请注意,字符交换 不是 一般来说,如果你真的想保护一些信息,它是一个很好的加密。不过是很好的锻炼。)