Java 复制一个数组并将其连接在一起

Java 复制一个数组并将其连接在一起,java,Java,我有一个包含秘密消息字节的数组(你好,世界,我的名字是大卫)。我有另一个数组,它有一个密码的字节(“secretCode”)。密码可以更改,但我必须循环,并将机密消息的每个字母与机密代码的字母异或 示例 我需要在密码数组中循环多次,这样我就可以对机密消息的每个字母进行异或运算,我该怎么做呢?String msg=; String msg = ... ; String key = ... ; StringBuilder sb = new StringBuilder(msg.length());

我有一个包含秘密消息字节的数组(你好,世界,我的名字是大卫)。我有另一个数组,它有一个密码的字节(“secretCode”)。密码可以更改,但我必须循环,并将机密消息的每个字母与机密代码的字母异或

示例

我需要在密码数组中循环多次,这样我就可以对机密消息的每个字母进行异或运算,我该怎么做呢?

String msg=;
String msg = ... ; 
String key = ... ;
StringBuilder sb = new StringBuilder(msg.length());
for (int i = 0; i < msg.length(); i++) {
  sb.append((char)(msg.charAt(i) ^ key.charAt(i % key.length())));
}
字符串键=; StringBuilder sb=新的StringBuilder(msg.length()); 对于(int i=0;i
i%key.length();
字符串键=;
StringBuilder sb=新的StringBuilder(msg.length());
对于(int i=0;i

i%key.length()
将从键数组中获取字符,而不会越界。

不清楚为什么需要多次循环消息[i]^key[i]?@Vikdor key实际上更短,“rhubarb”。这就是为什么。不清楚为什么需要多次循环查看消息[i]^key[i]?@Vikdor key实际上更短,“rhubarb”。这就是为什么。我可以用什么替代charAt()?因为它是一个字节数组,所以我正在工作with@GregValantine这只是另一个数组。XOR运算符将字节转换为int,您只需将其转换为char<代码>字节[]byteArr=。。。byte byteAtIndex=byteArr[index];char c=(char)(byteArr[0]^byteArr[1]);//示例
charAt()的替代方案是什么?因为它是一个字节数组,所以我正在工作with@GregValantine这只是另一个数组。XOR运算符将字节转换为int,您只需将其转换为char<代码>字节[]byteArr=。。。byte byteAtIndex=byteArr[index];char c=(char)(byteArr[0]^byteArr[1]);//示例