【问题标题】:how to convert string to array of 32 bit integers?如何将字符串转换为 32 位整数数组?
【发布时间】:2011-10-05 15:58:15
【问题描述】:

我想将字符串发送到一个加密函数,该函数接受一个由四个(32 位)整数组成的数组。 那么如何在 javascript 中将字符串转换为 32 位整数数组并将其分割以发送给函数呢?

【问题讨论】:

  • "发送到函数" ...这个函数在哪里?它是一个 JavaScript 函数吗?它是网络服务吗?您是在 Web 浏览器上下文中还是在其他服务器端系统中运行 JavaScript?

标签: javascript arrays string


【解决方案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);

方法二:

假设您要将四个字符转换为其字符的数值,这将起作用:

// 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);

方法三:

假设您要拆分一组由一致分隔符分隔的四个数字,这将起作用。

// 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);

【讨论】:

  • 如果字符串中的字符没有用逗号分隔那么我们如何将字符串转换为stringArray?
  • @vaichidrewar:我把它做成了新的方法1
【解决方案2】:

使用string.charCodeAt(i),获取字符串stringi位置的数字字符码。根据您使用的加密,您可以应用自己的压缩方法,以组合多个字符代码(大多数字符代码远小于 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)]);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-08
    • 1970-01-01
    • 2017-01-18
    • 1970-01-01
    • 2018-12-11
    • 2013-12-22
    • 1970-01-01
    • 2016-08-03
    相关资源
    最近更新 更多