首页 > 解决方案 > 从字符串中生成数字的方法

问题描述

我有一些喜欢的话flexform_mood_icaro_bed_2。我想编写一个方法来从上面的字符串生成一个唯一的代码。比如序列号或产品号。

GetHashCode()用于我的目的。但重要的一点是,代码号永远不应该随着相同的字符串而改变。我在某处看到 GetHashCode 将通过更改 .net 版本来更改。

正如我在第一行中提到的,输入包含 int 和 string。我实际上想根据产品名称制作产品编号。

那么有什么方法可以从字符串中生成代码编号吗?

标签: c#

解决方案


我有一些产品名称,例如:“Max Tool Kit 2”、“flexform_mood_icaro_bed”等。所以我想为它们制作一个序列号。清楚吗?!- D.JCode

不,这不清楚。这些字符串看起来也不像您在问题中使用的字符串。

你似乎不明白的是,为了做到这一点,你必须选择一个非常具体的算法来破坏那些特定的字符串(谁知道其他字符串,你仍然没有显示所有可能的输入是什么) 变成一个唯一的数字,这样输出就不会发生冲突。我不知道可以做到这一点的算法。

当然,像 SHA 之类的散列算法可能看起来像这样,但是你有一个非常非常大的数字作为输出,并且仍然不能保证它对于你想要处理的所有字符串都是唯一的。

相反,您应该做的是决定您希望序列号的外观并生成它们。

因此,从一个不错的数字开始,例如 1,000,000,000,然后遍历您的产品集合,分配当前数字,并将其加一。重复所有产品,完成。


推荐阅读