字符串转整型

时间:2023-01-03 22:40:27
字符串可能是汉字、字母、数字,特殊字符等任意组合,长度也不确定,但是唯一确定的是每个字符串都是唯一的。有什么办法可以将这个字符串转换成唯一的整型Int32。
比如:【你好123-h m】 和【好你123-h m】转换成唯一的整型。
这个是不是可以考虑从每个字符的顺序不一致上来考虑做法?

14 个解决方案

#1


你自己都不知道怎么个规则,你问谁啊,【你好123-h m】要转1还是2还是3啊

#2


你可以保存入库,自增ID的方式解决
或者不要转换,而是为每个字符串生成一个唯一的数字
private long GenerateIntID()

        {

            byte[] buffer = Guid.NewGuid().ToByteArray();

            return BitConverter.ToInt64(buffer, 0);

        }

#3


字符串的长度不一定,所以有可能Int64都不够用,但是我就是需要转成Int32 

#4


该回复于2013-06-13 12:04:06被管理员删除

#5


这边的需求比较特殊 自增ID就不考虑了 

#6


所以我才想着有没有其他着手比如字符串中每个字符的位置等,将每个字符串中的字符转换成数字相加按上面写的会重复

#7


规则就是将字符串生成唯一整型 其他没有了 字符串转整型

#8


该回复于2013-06-13 12:54:52被管理员删除

#9


唉 午饭时间了 希望有大神可以帮忙解决下 

#10


存入哈希表,字符串作为key,value从0累加
找不到的key,就加入

#11


长度不定,
我一开始想把每个字符都转成byte,然后每个byte转成int
但总怕 int就无能为力了~

如果有一种算法可以把字符串压缩成整形的,那就不错~

一个字符串对应一个int,但要解决可程序停止的时候,记录在那里的问题
Dic<string,int>

#12


10L所说的事实上就是自增ID的意思 这边不考虑这个

#13


所有字符串都压缩成唯一整型是绝对不可能的,只不过我这边的字符串个数用整型存足够了,而且要求的必须是整型 

#14


用有限集去映射无限集,这本身就无解。

#1


你自己都不知道怎么个规则,你问谁啊,【你好123-h m】要转1还是2还是3啊

#2


你可以保存入库,自增ID的方式解决
或者不要转换,而是为每个字符串生成一个唯一的数字
private long GenerateIntID()

        {

            byte[] buffer = Guid.NewGuid().ToByteArray();

            return BitConverter.ToInt64(buffer, 0);

        }

#3


字符串的长度不一定,所以有可能Int64都不够用,但是我就是需要转成Int32 

#4


该回复于2013-06-13 12:04:06被管理员删除

#5


这边的需求比较特殊 自增ID就不考虑了 

#6


所以我才想着有没有其他着手比如字符串中每个字符的位置等,将每个字符串中的字符转换成数字相加按上面写的会重复

#7


规则就是将字符串生成唯一整型 其他没有了 字符串转整型

#8


该回复于2013-06-13 12:54:52被管理员删除

#9


唉 午饭时间了 希望有大神可以帮忙解决下 

#10


存入哈希表,字符串作为key,value从0累加
找不到的key,就加入

#11


长度不定,
我一开始想把每个字符都转成byte,然后每个byte转成int
但总怕 int就无能为力了~

如果有一种算法可以把字符串压缩成整形的,那就不错~

一个字符串对应一个int,但要解决可程序停止的时候,记录在那里的问题
Dic<string,int>

#12


10L所说的事实上就是自增ID的意思 这边不考虑这个

#13


所有字符串都压缩成唯一整型是绝对不可能的,只不过我这边的字符串个数用整型存足够了,而且要求的必须是整型 

#14


用有限集去映射无限集,这本身就无解。