如何将 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;
谢谢,如有任何帮助,我们将不胜感激。
为什么不使用 String
的 toCharArray()
而不是 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 )
的一般实现
(请注意,字符交换 不是 一般来说,如果你真的想保护一些信息,它是一个很好的加密。不过是很好的锻炼。)
我目前正在做一个程序,我必须加密用户输入的字符串。 我可以随机化字母并让 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;
谢谢,如有任何帮助,我们将不胜感激。
为什么不使用 String
的 toCharArray()
而不是 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 )
(请注意,字符交换 不是 一般来说,如果你真的想保护一些信息,它是一个很好的加密。不过是很好的锻炼。)