我想知道如何将字符串值(例如:“myObjectName”)散列为0-19之间的int值 我保证不会有超过20个唯一字符串值。
由于
答案 0 :(得分:1)
您可以使用任何类型的哈希,但在这种情况下,您可以添加字符的ASCII值(或unicode代码点,如果您愿意),并将模20应用于结果。它会给你一个从0到19的数字。
但这保证会产生一个唯一标识你的20个字符串的数字。没有散列算法将保证散列20个随机字符串的集合将导致每个字符串的唯一代码..
答案 1 :(得分:1)
根据建议添加我的评论作为答案:
我建议哈希不是你应该遵循的确切路径。
一种方法是使用字典(如Python中的内置数据结构),它具有字符串的键值对和1-20(或0 - 19)的数字
当您阅读或查看每个字符串时,您可以检查是否存在字典条目,如果存在,则执行任何需要执行的操作,否则,创建具有下一个可用编号的新字典条目(通过查看生成字典中现有条目的数量。)
答案 2 :(得分:0)
做md5总和,转换为数字并做模20。用PHP:
hexdec(substr(md5("hello"), 1, 8)) % 20
需要substr(),以便可以将数字转换为整数。