我的问题是如何将字符串表示为int代码,我不希望它被解析或转换为int(例如,从英语翻译成法语或德语)。
我想要的是将字符串转换为可用作搜索引用的int代码,我打算使用字符串的哈希码来转换它,但是因为哈希与环境设置有关。机器对我的项目来说并不是最佳的,我已经考虑过使用每个字母的ascii代码来表达这个词,但遗憾的是,在几种语言中有很多长字,应用程序是全球化的,因此它不是一个非常可行的解决方案,项目将被部署为天蓝色云网站,因此我没有全文搜索
在这种情况下我能做些什么?
答案 0 :(得分:1)
您已经在提供解决方案而不是提供要求,因此可能会有更好的选择。
无论如何,您可以使用与SHA512Managed等托管加密类相关的平台无关哈希。但请注意,这不能保证唯一,因此您最终可能会遇到冲突;但至少它是内置的,你不必重新发明轮子。以here为例。
答案 1 :(得分:1)
我通过创建另一个表来解决这个问题,该表只包含每个帖子中的单词并使用每个单词的ID调用它
答案 2 :(得分:0)
一个这样的哈希是获取每个字母int hash = s.Select<char, int>(x => (int)x).Aggregate((x, y) => x + y);
的sum char代码,但是该哈希有冲突。另一种方法是连接每个字母的字符代码,但是你很快就会超过每个整数允许的数字。其中一个这样的工作就是从字符uint hash = Convert.ToUInt32(s.Select<char, string>(x => (((int)x) - 64).ToString()).Aggregate((x, y) => x + y));