数组空间在Java中被重用?

数组空间在Java中被重用?,java,arrays,Java,Arrays,我有以下循环(解密程序的一部分): for(int i=0;i64){ bt=Arrays.copyOfRange(bt,1,65); } 返回bt; } 我应该如何解决这个问题?在循环结束之前将null分配给这两个变量没有帮助。因为每次迭代中都要创建byte[]pt的新实例,所以不必担心此数组以前的大小。 尝试使用此方法转换十六进制。字符串到字节数组 private byte[] toBytes(String s) { int len = s.length(); b

我有以下循环(解密程序的一部分):

for(int i=0;i
在标记的语句中,
cipher.doFinal(blockd)
返回不同大小的数组。问题是,如果在一个大小为30的迭代数组中返回,而在下一个迭代中返回其25(较小),则赋值将替换前25个字符,而上一个迭代的最后5个字符仍在数组中

这是
fromHex()
函数:

hex的私有字节[](字符串b){
字节[]bt=(新的BigInteger(b,16)).toByteArray();
如果(bt.length>64){
bt=Arrays.copyOfRange(bt,1,65);
}
返回bt;
}

我应该如何解决这个问题?在循环结束之前将null分配给这两个变量没有帮助。

因为每次迭代中都要创建byte[]pt的新实例,所以不必担心此数组以前的大小。
尝试使用此方法转换十六进制。字符串到字节数组

private byte[] toBytes(String s)
{
    int len = s.length();     
    byte[] data = new byte[len / 2];     
    for (int i = 0; i < len; i += 2) 
    {         
        data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)+ Character.digit(s.charAt(i+1), 16));     
    }     
    return data; 
}
private byte[]toBytes(字符串s)
{
int len=s.length();
字节[]数据=新字节[len/2];
对于(int i=0;i数据[i/2]=(字节)((Character.digit(s.charAt(i),16))我不必担心,但这就是正在发生的事情。我在问题中添加了fromHex函数。如果这有帮助,请检查它。为什么不简单地使用
BigDecimal(String val)
?那会怎么样?我正在尝试将十六进制格式的字符串转换回字节数组raylist来存储字节数组,听起来不太好。这应该是最后的选择