将任意字符串转换为范围0和1中的浮点数

时间:2011-08-22 13:01:12

标签: flex actionscript-3

我想将一个任意字符串(或更简单的处理字符串哈希)转换为0到1之间的浮点数。目的是创建一个函数,返回给定字符串的颜色代码,以便用户始终看到该实体的颜色与从其名称生成的颜色相同。

OP在评论中包含此代码(此处为了便于阅读):

var hashed:String = MD5.hash(input); // creates a 32 long hexa 
const max:Number = Number("0xffffffffffffffffffffffffffffffff"); 
var hashedHexa:Number = Number("0x" + hashed); 
return hashedHexa/max;

1 个答案:

答案 0 :(得分:1)

因为你要我们创建一个算法;有很多方法可以做到这一点。我可能会尝试使用charCodeAt方法。概念上是这样的:

public function stringToDecimal(value:String):Number{
 var results : Number = 0;
 // loop over each character in string
 for(var index:int = 0;index< value.length; index++){
   // this code turns each character in the string to a number and adds them all together
   // divide by 100 b/c we know all ASCII charcodes will be between 0 & 127. This will give 
   // a decimal result
   results += (value.charCodeAt(index)/100);
 }
 return results
}

此算法不保证每个字符串都会返回唯一的数字;但这不是你的要求之一。