从帖子标题生成一个唯一的字符串,如stackoverflow

时间:2009-09-23 17:12:47

标签: c# asp.net algorithm

如何从C#代码中的帖子标题生成唯一字符串?与此帖子的网址中出现的内容类似。

5 个答案:

答案 0 :(得分:17)

字符串不需要是唯一的,实际上:如果您检查此帖子的URL:

http://stackoverflow.com/questions/1467402/generate-a-unique-string-from-the-post-title-like-stackoverflow

“真正的”唯一部分是数字 - 这里是1467402:它看起来像数据库中问题的标识符;可能是某种自动递增/序列,确保数据库服务器是唯一的。


实际上,您可以尝试自行检查“标题”部分是否重要:转到此URL:

http://stackoverflow.com/questions/1467402/glop

即使“标题”部分显然不在此处,该网址也会引导您进入此帖; - )


URL中出现的“标题”有两个原因:

  • 更多用户友好的网址,当然
  • 更多搜索引擎/更好的参考网址

要生成这个,有几件事要做:

  • 替换非ascii字符;例如,'é'很可能被翻译成'e'
  • 用' - '替换其他不能很好地替换的字符作为字分隔符。

答案 1 :(得分:2)

这是一个非常广泛的问题。

大多数时候,当我需要识别一些独特的东西时,我会使用Guid

答案 2 :(得分:1)

他们只是用破折号替换空格,但是你会想确定它还不存在。

如果确实存在,只需在末尾添加一个数字。

您注意到它们在唯一字符串之前有一个数字,这将减少发生碰撞的可能性。

例如,您可以根据朱利安日期(一年中的数字日)和一年生成该数据。

答案 3 :(得分:0)

菲尔·哈克在this entry.

中发表了关于这个主题的文章

你可以做类似但更通用的事情(最后添加一个递增的数字)。

答案 4 :(得分:0)

如果帖子标题是唯一的,请使用它们。或者您可以创建消息摘要签名。

请参阅:http://www.obviex.com/samples/hash.aspx获取详细答案。