【问题标题】:generate a unique string from the post title like stackoverflow从帖子标题生成一个唯一的字符串,如stackoverflow
【发布时间】:2009-09-23 17:12:46
【问题描述】:

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

【问题讨论】:

    标签: c# asp.net algorithm


    【解决方案1】:

    字符串不需要是唯一的,实际上:如果你检查这篇文章的 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 仍可将您带到这篇文章 ;-)


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

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

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

    • 替换非ASCII字符;例如,“é”很可能会被翻译成“e”
    • 将无法很好替换的其他字符替换为“-”作为单词分隔符。

    【讨论】:

    • +1 - 我从没想过这个数字是数据库 ID。
    • @James :在数据库中使用自动增量对我来说似乎是更简单的方法(也是我通常使用的方法),所以,只是猜测,但为什么不呢;;; @Greg:实际上我也需要更多的睡眠^^
    • 注意:尽管它是可选的,但唯一的字符串直接与url关联的。查看 stackoverflow.com/questions/1467402 源代码中的规范元素。像这样的小事让搜索引擎更快乐。
    • glop 是什么意思,还是你只是随机选择 4 个字符? ;)
    • @ming 这不是随机的:在很多年前,在法国,有一部漫画里有一只名叫 Pifou 的狗,上面写着“glop glop!”当他高兴时(或有什么好东西),并且“pas glop!pas glop!” ("not glop !") 当他不是时(或某些事情不正常)——在谷歌图片上搜索“pifou”应该会得到一些例子;-) ;;;我经常在别人可以说“foo”或“bar”的地方/当别人说“foo”或“bar”时使用“glop”,除非那些在法语中不使用。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      他们只是用破折号替换空格,但是您需要确定它不存在。

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

      您注意到它们在唯一字符串之前有一个数字,这将减少发生冲突的机会。

      例如,您可以根据儒略日期(一年中的第几天)和年份来生成它。

      【讨论】:

        【解决方案4】:

        Phil Haack 在this entry. 上发布了关于此主题的帖子

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

        【讨论】:

          【解决方案5】:

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

          详细答案请参见:http://www.obviex.com/samples/hash.aspx

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-09-24
            • 1970-01-01
            • 2011-01-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多