Java 将字符串转换为特定整数

Java 将字符串转换为特定整数,java,android,kotlin,Java,Android,Kotlin,我正在使用ID创建前台通知,如下所示: startForeground(1,通知) 初始化服务时,我会向它发送一些字符串(例如:Hello)。我希望服务和通知将绑定到此字符串,因此我希望将其用作我的id。那么,如何将字符串转换为唯一id?例如,单词“Hello”将始终生成123,单词Bye将始终生成456。听起来像是您想要一个“哈希代码”;从某些其他信息派生的值(希望是唯一的,但不总是唯一的) 有很多不同的算法可以实现这一点,如果你搜索“哈希代码”,你会发现很多算法(特别是在安全域;sha、md

我正在使用ID创建前台通知,如下所示: startForeground(1,通知)


初始化服务时,我会向它发送一些字符串(例如:Hello)。我希望服务和通知将绑定到此字符串,因此我希望将其用作我的id。那么,如何将字符串转换为唯一id?例如,单词“Hello”将始终生成123,单词Bye将始终生成456。

听起来像是您想要一个“哈希代码”;从某些其他信息派生的值(希望是唯一的,但不总是唯一的)

有很多不同的算法可以实现这一点,如果你搜索“哈希代码”,你会发现很多算法(特别是在安全域;sha、md5等)

但是,, 听起来你可能真的不需要那么复杂(一些更安全和“独特”的散列码算法计算起来可能很慢)。 有什么原因不能使用字符串本身吗

字符串比较可能很慢,但可能没有好的散列那么慢。如果您需要更快的“查找”,也可以使用哈希表


无论如何,如果您确实需要字符串中的哈希代码,快速搜索会发现(这看起来很合理)

听起来您需要一个“哈希代码”;从某些其他信息派生的值(希望是唯一的,但不总是唯一的)

有很多不同的算法可以实现这一点,如果你搜索“哈希代码”,你会发现很多算法(特别是在安全域;sha、md5等)

但是,, 听起来你可能真的不需要那么复杂(一些更安全和“独特”的散列码算法计算起来可能很慢)。 有什么原因不能使用字符串本身吗

字符串比较可能很慢,但可能没有好的散列那么慢。如果您需要更快的“查找”,也可以使用哈希表


无论如何,如果您确实需要字符串中的哈希代码,快速搜索就会发现(这看起来很合理)

ID是什么,或者它是唯一的,这有关系吗?是否应在运行之间保留此值?(即,如果重新启动服务,“Hello”可以获得不同的ID吗,还是应该始终是相同的)?应该是相同的。如果需要使用任意字符串,可以使用字符的ascii值来获得SUM,可能只是字符串的
hashcode
?它是从其内容(基本上是字符序列)派生出来的数字。如果您有一组固定的字符串,并且希望与每个字符串关联一个特定的ID,那么创建一个枚举可能会更好—您可以将其序号用作唯一的ID,或者在构造函数中设置一个ID,这与ID是什么有关,或者只是因为它是唯一的?是否应在运行之间保留此值?(即,如果重新启动服务,“Hello”可以获得不同的ID吗,还是应该始终是相同的)?应该是相同的。如果需要使用任意字符串,可以使用字符的ascii值来获得SUM,可能只是字符串的
hashcode
?它是从其内容(基本上是字符序列)派生出来的数字。如果您有一组固定的字符串,并且希望与每个字符串关联一个特定的ID,那么创建一个枚举可能会更好—您可以使用其序号作为唯一ID,或者在构造函数中设置一个