如何将空格字符放入数组元素?

时间:2015-01-01 20:23:46

标签: java arrays character space

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

    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;  

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

1 个答案:

答案 0 :(得分:2)

为什么不使用c = 'a'&#39; s c <= 'z'而不是for StringtoCharArray() for 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()char[]专门用于char[]的一般实现,可能比将List<Character>转换为{{1}}并再返回更快。 (从Fisher-Yates shuffle实施)

(请注意,字符交换 一般来说是一个很好的加密,如果你真的想要保护一些信息。虽然这是一个很好的练习。)