2012-10-14 59 views
0

我幾乎已經到達了一堵磚牆,並可以使用一些關於如何爲我的課程之一進行項目的建議。這裏是我試圖去工作的代碼:如何將字符串放入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 []這個固定的字節數組中。由於十六進制是一個字符串,我還沒有找到一種方法將該值放在sendData數組中的某個位置。我知道我不能使用getBytes()函數,因爲它完全擺脫了十六進制值。如果任何人有任何想法如何獲取一個字符串值,並把它放在一個固定的字節數組中的位置,將不勝感激。

回答

0

您需要了解整數爲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(); 
} 
相關問題