0

关于这个主题已经有很多答案,但我找不到任何看起来像我正在寻找的答案。

我需要从给定的字符串生成一个唯一的负 ID (int)。如果也有解码会很高兴,但不是强制性的。

4

3 回答 3

4

您可以尝试myString.GetHashCode()它不保证是唯一的,但肯定会为相同的字符串返回相同的键。

于 2013-04-15T10:10:56.213 回答
4

显然,没有这样的转换。int大小受 32 位限制,而string大小几乎不受限制。除非您对字符串应用一些限制,否则您将遇到冲突。

于 2013-04-15T10:12:58.510 回答
0

不可能为任意长度的字符串生成唯一的 int。

int 有 32 位数据,一个 100 个字符的字符串(假设 C#)将有 1600 位数据,因此您将至少有 1600/32 次冲突。

[搞笑]

你可以 :

string a = "dgfadg";
var bytes = System.Text.Encoding.Unicode.GetBytes(a);
BigInteger integer=  new BigInteger(bytes);

[/有趣]

于 2013-04-15T10:15:14.233 回答