当前位置: 首页 > 知识库问答 >
问题:

Kotlin将长字符串字母转换为数字id

黄淇
2023-03-14

我试图找到一种方法来将像“t2hr8var4tnuloglmibpabyvdri1y02rbx”这样的长字符串ID转换为数字ID。

A=10,B=20,C=50,

ABC=10+20+50=80

BAC=20+10+50=80

所以ABC=102050

这个方法不起作用,因为有一个20个字母的字符串会导致一个巨大的数字,所以我如何解决这个问题?提前谢谢你。

共有1个答案

澹台志诚
2023-03-14

可以使用hashcode()函数。“id”.hashcode()。所有对象都实现此函数的一个方差。

从文档中:

打开有趣的hashCode():int

返回对象的哈希代码值。hashcode的一般约定是:

只要在同一对象上多次调用hashcode方法,则equals方法必须一致地返回相同的整数,前提是不修改对该对象进行的equals比较中使用的信息。

如果根据equals()方法,两个对象相等,那么对这两个对象中的每一个调用hashcode方法必须产生相同的整数结果。

默认情况下,所有平台对象都实现它。如果您有很多ID,总是有可能重复。

如果使用基于JVM的kotlin环境,那么散列将由JVM的string.hashcode()函数产生。

 类似资料:
  • 所以我是计算机科学的新手,我们被要求做的一件事是尝试创建一个程序,首先将用户输入的一个单词转换成一个数字串,a=1,b=2,z=26等等,还有一些其他的事情,因为它们是扩展,我现在不想讨论。诚然,她说她不介意我们完成它,因为这是我们今天的第一节java课程。 有鉴于此,有人能给我一些关于如何做到这一点的建议吗?我不想让一段完整的代码完全做到这一点,因为我需要学习,因此非常感谢指导之手。到目前为止,

  • 我正在使用Schembuf在带有套接字的计算机之间更改数据。要传输数据,我使用以下内容: 然而,我注意到Protobuf无法读取任何非int类型的接收数据(它将其分配给0)。果不其然,如果我不使用套接字,但试图用相同的代码片段返回消息,则会发生相同的情况: 我还指出: 那么,为什么我不能正确地将数据转换回字符串呢?如果这是一个参考问题,为什么protobuf不能读取字符数组数据或从字符数组转换的字

  • 我有一个,我希望将其转换为。在Java8之前,我会通过循环,将每个转换为并将其添加到新的,如下所示。

  • 问题内容: 如何将经典字符串转换为f字符串? 输出: 所需的输出: 问题答案: f字符串是 语法 ,而不是对象类型。您不能将任意字符串转换为该语法,该语法会创建一个字符串对象,而不是相反。 我假设您想用作模板,因此只需在对象上使用方法: 如果要提供可配置的模板服务,请创建一个包含所有可以插值的字段的名称空间字典,并与调用语法一起使用以应用名称空间: 然后,用户可以在字段中的名称空间中使用任何键(或

  • 问题内容: 我想在GO中将字符串数组转换为字节数组,以便可以将其写到磁盘上。将字符串数组()解码为字节数组()的最佳解决方案是什么? 我正在考虑对字符串数组进行两次迭代,第一个迭代以获得字节数组所需的实际大小,然后第二个迭代写入每个元素的长度和实际字符串()。 解决方案必须能够以其他方式进行转换;从一个到一个。 问题答案: 让我们忽略一个事实,那就是走一秒钟。您需要做的第一件事是将序列化格式编组为

  • 问题内容: 我有一个带转义Unicode字符的字符串,我想将其转换为常规Unicode字母。例如: 应该成为 我知道当我打印第一个字符串时它已经显示了。我的问题是我从文件中读取文件名,然后搜索它们。文件中的文件名使用Unicode编码进行转义,当我搜索文件时,我找不到它们,因为它搜索名称中带有名字的文件。 问题答案: 从技术上讲: 自动将其转换为,因此我假设你正在从某个文件中读取字符串。为了将其转