2011-10-05 454 views
0

我想將字符串發送到一個加密函數,該函數接受一個包含四個(32位)整數的數組。 那麼如何將字符串轉換爲JavaScript中的32位整數數組,並將其分爲發送函數?如何將字符串轉換爲32位整數數組?

+2

哪個字符串,編碼等? – Gleno

+0

「發送給函數」...這個函數在哪裏?它是一個JavaScript函數嗎?它是一個Web服務嗎?你是在Web瀏覽器上下文還是其他服務器端系統上運行JavaScript? – Pointy

回答

3

這氣味作業的,但在這裏你去。


方法1:

假設你想四個字符轉換成字符串到整數,這將工作:

// Declare your values. 
var myString = "1234"; 

// Convert your string array to an int array. 
var numberArray[myString.length]; 
for (var i = 0; i < myString.length]; i++) 
{ 
    numberArray[i] = int.parseInt(myString[i]); 
} 

// Call your function. 
MyEncryptionFunction(numberArray); 

方法2:

假設你要四個字符轉換爲他們的字符的數值,這將工作:

// Declare your values. 
var myString = "1,2,3,4"; 

// Convert your string array to an int array. 
var numberArray[myString.length]; 
for (var i = 0; i < myString.length]; i++) 
{ 
    numberArray[i] = myString.charCodeAt(i); 
} 

// Call your function. 
MyEncryptionFunction(numberArray); 

方法3:

假設要分割一個一貫分隔的四個數字組合分隔符,這將工作。

// Declare your values. 
var splitter = ","; 
var myString = "1,2,3,4"; 

// Convert myString to a string array. 
var stringArray[] = myString.split(splitter); 

// Convert your string array to an int array. 
var numberArray[stringArray.length]; 
for (var i = 0; i < stringArray.length]; i++) 
{ 
    numberArray[i] = int.parseInt(stringArray[i]); 
} 

// Call your function. 
MyEncryptionFunction(numberArray); 
+0

如果字符串中的字符不以逗號分隔,那麼我們如何將字符串轉換爲字符串數組? – vaichidrewar

+1

@vaichidrewar:我提出了新的**方法1 **。 –

1

使用string.charCodeAt(i),得到字符串string的數字字符代碼在位置i。根據您使用的加密,您可以應用自己的壓縮方法來組合多個char代碼(大多數char代碼遠小於32位)。

在由對(4個字符)的陣列分離的字符串的示例:

var string = "A sstring dum doo foo bar"; 
var result = []; 
string += Array((5-(string.length%4))%5).join(" "); //Adding padding at the end 
for(var i=3, len=string.length; i<len; i+=4){ 
    result.push([string.charCodeAt(i-3), string.charCodeAt(i-2), 
      string.charCodeAt(i-1), string.charCodeAt(i)]); 
}