将非数字字符串转换为整数?

Nik*_*ntz 3 java string int type-conversion

如何将非数字字符串转换为整数?

我得到了例如:

String unique = "FUBAR";

将字符串表示为没有冲突的整数的好方法是什么,例如"FUBAR"应始终表示为相同的数字,并且不应与任何其他字符串冲突.例如,String a = "A";应该表示为Integer 1等等,但是执行此操作的方法是什么(最好是对所有unicode字符串,但在我的情况下,ASCII值可能就足够了).

Ste*_* P. 7

这是不可能的.想一想,一个Integer只能是32位.因此,根据鸽子原则,Integer无论您使用何种技术进行转换,都必须存在至少两个具有相同值的字符串.实际上,有无限的相同价值观......

如果你只是在寻找一个有效的映射,那么我建议你只使用int返回的hashCode(),参考实际上是31位.

  • 因为有可能而被投票.十六进制数字包含字符,它们可以很容易地转换为10个基本而不会发生任何冲突. (4认同)
  • @ 909Niklas是什么?`int idValue =(this.getClass().getName()+ id).hashCode()` (3认同)
  • @Torben没有可能保证不发生碰撞的方法.如果你找到方法,请告诉我(没有其他人). (2认同)
  • +1正确使用鸽子原理. (2认同)
  • BTW Object.hashCode()是31位. (2认同)