Ric*_*III 7 java string hashcode construct
有没有什么办法可以在java中使用字符串的哈希码,并重新创建该字符串?
例如:
String myNewstring = StringUtils.createFromHashCode("Hello World".hashCode());
if (!myNewstring.equals("Hello World"))
System.out.println("Hmm, something went wrong: " + myNewstring);
Run Code Online (Sandbox Code Playgroud)
我这样说,因为我必须将字符串转换为整数值,并从该整数值重构该字符串.
这是不可能的.String的哈希码是有损的; 许多String值将导致相同的哈希码.整数具有32位位置,每个位置具有两个值.甚至没有办法将32个字符的字符串(例如)(每个字符都有很多可能性)映射到32位而没有冲突.他们只是不适合.
如果你想使用任意精度算术(比如BigInteger),那么你可以将每个字符作为一个整数并将它们连接在一起.瞧.