[英]How to generate a unique integer id for string?
我有一個長字符串列表,應該反復進行比較。 我正在尋找的是一種基於字符串值生成唯一整數值的方法,該方法具有最低的RAM / CPU使用率,並且可以完全信任。 為相同的字符串生成值時,應始終返回相同的值。 我知道有很多基於某種哈希/加密機制的算法,但是它們使用大量資源,而且速度不夠快。 提前致謝。
您可以使用某種校驗和函數來處理字符串,並為每個特定的字符串創建一個唯一的數字。我在大型項目中為自己使用了一個函數,希望對您有所幫助
private string GetChecksum(string text)
{
long sum = 0;
byte overflow;
for (int i = 0; i < text.Length; i++)
{
sum = (long)((16 * sum) ^ Convert.ToUInt32(text[i]));
overflow = (byte)(sum / 4294967296);
sum = sum - overflow * 4294967296;
sum = sum ^ overflow;
}
if (sum > 2147483647)
sum = sum - 4294967296;
else if (sum >= 32768 && sum <= 65535)
sum = sum - 65536;
else if (sum >= 128 && sum <= 255)
sum = sum - 256;
sum = Math.Abs(sum);
return sum.ToString();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.