`
michelecindy
  • 浏览: 173059 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

最简单的散列方法,字串转int

    博客分类:
  • Java
 
阅读更多
比如: 小花 , 小草
转为2位,或者3位或者4位的int

不需要反向找回字串,只要下次同样的字串encode还是同样的结果.
如何实现?

package test;

public class TestSync {
	public static void main(String[] args) {
		String s = "小花";
		getHashCode(s);
		System.out.println(getHashCode(s));
	}

	public static int getHashCode(String str) {
		int h = 0;
		int off = 0;
		char val[] = str.toCharArray();
		int len = val.length;
		for (int i = 0; i < len; i++) {
			h = 31 * h + val[off++];
		}
		return h;
	}
}
分享到:
评论

相关推荐

    java的散列算法

    在Java编程语言中,散列算法是一种非常重要的数据处理方法,主要用于确保数据的完整性和安全性。本文将深入探讨Java中的一种常见散列算法——SHA-1(Secure Hash Algorithm 1),并通过一个具体的Java类`SHA1`来展示...

    排序和查找实现适配器模式

    现有一个接口DataOperation定义了排序方法sort(int[]) 和查找方法search(int[], int),已知类QuickSort的quickSort(int[])方法实现了快速排序算法,类BinarySearch 的binarySearch (int[], int)方法实现了二分查找...

    vc++ 字符串类型转为整型,char转为long,char转为int

    long int char2long(char* sz) { if (strlen(sz)==0) return 0; long num=0,num2=0; if(strlen(sz)) { for (int i=0;i(sz);i++) { memcpy(&num2,sz+i,1); num2=num2-'0'; num=num*10+num2; } } ...

    利用zint生成条码二维码并添加水印和打印功能

    例如,在C#中,你可以创建一个`Zint Barcode Generator`对象,设置其属性(如类型、数据、尺寸等),然后调用`GenerateBarcode()`方法来创建图像。 2. **添加水印**:水印是一种增强图像安全性和标识性的方法。在...

    常用散列算法类源代码(6种)

    `byte_and_ints.cpp`和`byte_and_ints.h`文件可能是通用的工具函数,用于处理字节和整数之间的转换,这些函数在处理散列算法时非常常见,因为散列通常涉及对原始数据的逐字节操作。 通过这些源代码,开发者可以学习...

    数据结构c语言散列查找(实验报告)

    《数据结构》实验报告——散列查找 散列查找是一种高效的数据检索技术,它通过将关键字映射到一个固定大小的数组(散列表)来实现快速查找。在本实验中,我们将深入理解并实践散列查找的基本原理和冲突解决策略。 ...

    ALINT-PRO中文使用教程

    ALINT-PRO是一款由Aldec公司开发的静态时序分析工具,专门用于FPGA设计的linting(代码质量检查)。在EDA(电子设计自动化)领域,linting工具用于帮助工程师检测设计中可能存在的错误、漏洞或风格上的问题,类似于...

    md5散列值算法

    int F(unsigned int x,unsigned int y,unsigned int z); int G(unsigned int x,unsigned int y,unsigned int z); int H(unsigned int x,unsigned int y,unsigned int z); int I(unsigned int x,unsigned int y,...

    在Unicode宽字符下CString转int的方法

    【在Unicode宽字符下CString转int的方法】 在Unicode环境下,将CString对象转换为整数(int)是一项常见的任务,这通常涉及到字符串解析和类型转换。Unicode是一种广泛采用的字符编码标准,它支持多种语言和字符集...

    原理讲解-ServletInputStream.readLine(byte[] b, int off, int len) 方法

    `readLine(byte[] b, int off, int len)` 方法是 `ServletInputStream` 提供的一个方法,用于读取输入流中的一行数据。这个方法在处理文本数据时非常有用,因为它可以方便地按行读取数据,而不仅仅是单个字节。 在...

    Int。int.Prase.ToInt之间的装换效率问题

    - **执行速度**:`int.Parse()`方法涉及字符串处理和数值计算,相对于简单的数据类型转换,它的执行时间会更长。 - **内存消耗**:在转换过程中,可能会创建额外的对象,例如在处理异常时。 - **异常处理**:如果...

    Hash表法实现散列以及再散列

    这种方法简单易懂,但会增加额外的内存开销。 以下是一个简单的C++实现哈希表的例子: ```cpp #include #include struct HashTable { int size; std::list&lt;std::pair&lt;int, std::string&gt;&gt;* table; HashTable...

    zint库使用说明

    zint库,一个专注于提供跨平台、开源的条形码生成解决方案的项目,其目标是为专业用户提供足够灵活的工具,同时简化处理流程,使得从输入数据到条形码图像的转换尽可能简单。zint库的核心组件包括基于Qt的图形用户...

    lua proto 解决int64 解析

    要解决这个问题,我们需要采用一些特定的方法来确保在Lua中正确地处理int64值: 1. 使用第三方库:有一些Lua扩展库,如luapb-int64,专门针对Lua和protobuf的int64类型问题进行了优化。这些库通常会提供自定义的...

    java课后习题 关于 编写一个类

    在给定的题目中,涉及了类的继承、方法的重写以及特定算法的实现。我们来详细解析这些知识点: 1. **类的继承**: 类A是基础类,它包含了一个方法`f()`,用于输出英文字母表。类B继承自类A,并且必须保持`f()`方法...

    Android 开发,编程建立一个简单的进程内服务,实现比较两个整数大小的功能。服务提供Int Compare(Int, Int

    这个方法应该接受两个`int`参数,并返回较大的那个。代码可能如下: ```java public class IntegerComparisonService extends Service { @Override public IBinder onBind(Intent intent) { return null; } ...

    stdint.h头文件

    2. `int_fast8_t`, `uint_fast8_t`, `int_fast16_t`, `uint_fast16_t`, `int_fast32_t`, `uint_fast32_t`, `int_fast64_t`, `uint_fast64_t`: 这些类型是最快的相应位宽整数类型,但可能比基本的固定宽度类型更宽。...

    aldec alint 学习资料

    在学习和掌握Aldec ALINT的过程中,深入理解其规则库、配置方法以及如何解读报告至关重要。通过熟悉这些内容,开发者能够充分利用ALINT的潜力,提升FPGA设计的效率和质量。同时,理解如何与其他设计工具(如仿真器、...

    JAVA计算最大公约数最小公倍数

    编写一个类,该类有一个方法public int f(int a,int b),该方法返回a和b的最大公约数,然后再编写一个该类的子类,要求子类重写方法f,而且重写的方法将返回a和b的最小公倍数,要求在重写的方法的方法体中首先调用被...

    C#中int、Convert、Parse、TryParse的区别对比.docx

    C# 中 int、Convert、Parse、TryParse 是四种不同的类型转换方法,它们之间有着不同的应用场景和使用方式。 首先,int 类型转换可以通过强制类型转换来实现,但是需要注意隐式转换和显式转换的区别。从 int 类型到 ...

Global site tag (gtag.js) - Google Analytics