作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在创建一个聊天应用程序。我想将对话保存在不同的 XML 文件中。我正在考虑为两个名称(发件人和接收者)生成一个唯一的 key ,并将使用该 key 的 XML 文件保存为文件名。
有生成那种 key 的算法吗?
我想把两个词组合起来作为一个键。但我想知道最佳实践。
更新
我想再次为相同的两个用户获取相同的 key 。
最佳答案
您不能只是将两个词连接起来作为键。假设名称为 1234 和 5678 的用户正在聊天,这将给出 key 12345678。但是,如果 12345 和 678 在哪里聊天呢?那会给出相同的 key !
所以通常要做的是在您想要组合的两件事之间添加一些不应该发生的事情。也许名称中不允许使用一些特殊字符。更好的办法是使用用户的 ID,因为它可能不会随时间改变,而且通常只包含数字。
因此,如果上面的示例是用户 ID,您可以在它们之间添加一个带有一些字母的分隔符(这适用于文件名)。例如只是一个下划线 _。现在 key 将是 1234_5678 和 12345_678,因此可以区分它们。
由于您现在已经添加了两个用户始终应生成相同 key 的要求,因此您可以先对这两个值进行排序。所以 1234 发送到 5678 应该得到与 5678 发送到 1234 相同的结果。
关于java - 如何为两个单词创建唯一键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37511310/
我是一名优秀的程序员,十分优秀!