繁体   English   中英

如何在Java中将字符串放入字节数组中的某个位置?

[英]How to put a string into a position in a byte array in Java?

我几乎碰到了一堵墙,可以就我的其中一门课程如何进行项目使用一些建议。 这是我要开始工作的代码:

for(i = 0; i < sendData.length; i++){
        String hex = Integer.toHexString(C[i]);
    }

    System.out.println("Encrypted Message: ");
    for(i = 0; i < sendData.length; i++){
        System.out.print(sendData[i]);
    }

作为背景知识,这是用于RC4加密的代码。 我试图将十六进制的值放在sendData []中的一个固定字节数组中的位置。 因为hex是一个字符串,所以我还没有真正找到一种将该值放在sendData数组中某个位置的方法。 我知道我不能使用getBytes()函数,因为它完全摆脱了十六进制值。 如果有人对如何获取字符串值并将其放入固定字节数组中的某个位置有任何想法,将不胜感激。

您需要了解Integer是4 bytes而不是单个字节,因此您将需要4 bytes数组,而不是使用单个字节循环存储。 您可以将Integer转换为byte [],如下所示。

public static byte[] toByteArray(int value)    
{  
    ByteBuffer bb = ByteBuffer.allocate(4);  
    return bb.putInt(value).array();  
}  

public long toInteger(byte[] bytes) {
    ByteBuffer buffer = ByteBuffer.allocate(4);
    buffer.put(bytes);
    return buffer.getInt();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM