如何在java中从String创建唯一的整数?

时间:2016-11-08 04:53:35

标签: java database string

我需要在Java中使用String创建一个Unique Integer,这样碰撞机会就会少得多。

有没有办法,我们可以在Java中创建一个整数,对于同一个字符串总是唯一的?

我必须在数据库中存储缺少的字符串,所以我想转换为哈希码,以便在我解除SELECT查询的时间内检索更少的时间..

3 个答案:

答案 0 :(得分:5)

“永远独一无二”?否。

你所说的基本上是散列,除非你的字符串没有比整数更多的信息内容(即位数),否则你不能保证唯一性。

您可以期待的最好的是一些合理平衡的加载因子,并且网上有许多通用的散列函数。

Java的Object类实际上提供了一个.hashCode()方法,如果大多数子类需要不同的行为,它们可以覆盖这些方法。

事实上,Java's String class does exactly that

所以你可以简单地做一些事情:

String str = "My hovercraft is full of eels";
int code = str.hashCode();

答案 1 :(得分:0)

参见此示例

import java.io.*;
public class Test {

   public static void main(String args[]) {
      String Str = new String("Welcome to Tutorialspoint.com");
      System.out.println("Hashcode for Str :" + Str.hashCode() );
   }
}

如果srring相同则会生成相同的哈希码Reference

您也可以查看它 How to generate a unique hash code for string input in android...?

答案 2 :(得分:-1)

循环字符串并从字符串中获取一个字符并获取每个章程的ascii并组合ascii。它会给出唯一的整数。下面是如何从角色获取ascii的代码。

String name = "admin";
char character = name.charAt(0); // This gives the character 'a'
int ascii = (int) character; // ascii is now 97.