CN106469186A - 一种字符串比较的方法及装置 - Google Patents
一种字符串比较的方法及装置 Download PDFInfo
- Publication number
- CN106469186A CN106469186A CN201610751100.7A CN201610751100A CN106469186A CN 106469186 A CN106469186 A CN 106469186A CN 201610751100 A CN201610751100 A CN 201610751100A CN 106469186 A CN106469186 A CN 106469186A
- Authority
- CN
- China
- Prior art keywords
- character string
- pointer
- processed
- electronic game
- cryptographic hash
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种字符串比较的方法及装置,本发明实施例预先对要处理的电子游戏程序中的字符串对应指针,当后续接收到电子游戏程序中的字符串比较指令时,直接比较字符串对应的指针是否相等即可。更进一步地,在对要处理的电子游戏程序中的字符串对应指针时,进行字符串的比较,对相同的字符串设置唯一的指针,从而更加简便且快速地完成电子游戏程序的字符串的比较,提高了比较速度,提高电子游戏程序的性能和运算速度。
Description
技术领域
本发明涉及计算机数据的处理技术,特别涉及一种字符串比较的方法及装置。
背景技术
电子游戏朝着大型的三维电子游戏的方向发展。因此,在现有的电子游戏程序中,会遇到数量巨大的字符串比较操作,诸如比较资源名称等字符串的操作等。在电子游戏的程序中,字符串主要用于编程、概念说明及函数解释,一般是由数字、字母、和/或下划线组成的一串字符,是编程语言中表示文本的数据类型。
目前,在对电子游戏程序的字符串比较时,一般采用直接比较方式,就是采用C++编程语言的std::string命令中的==算法,或者使用C编程语言的strmp函数直接比较,得到字符串是否相等的结果。
采用这种直接比较方式对电子游戏程序的字符串进行比较,无论是基于C++编程语言还是C编程语言,本质上都是要逐一的比较字符串的每个字符,这种比较方法效率比较低,特别是电子游戏程序的数据量大且客户端处理能力低的情况下,严重影响了电子游戏程序的性能和运算速度,使得玩家的体验度下降。
发明内容
有鉴于此,本发明实施例提供一种字符串比较的方法,该方法能够提高电子游戏程序的字符串的比较速度,从而提高电子游戏程序的性能和运算速度。
本发明实施例还提供一种字符串比较的装置,该装置能够提高电子游戏程序的字符串的比较速度,从而提高电子游戏程序的性能和运算速度。
根据上述目的,本发明是这样实现的:
一种字符串比较的方法,包括:
处理电子游戏中的字符串,为字符串设置对应的指针;
接收比较字符串指令后,根据字符串对应的指针确定字符串是否相同。
所述根据字符串对应的指针确定字符串是否相同为:
如果字符串对应的指针不相同,则字符串不相同,如果字符串对应的指针相同,则字符串相同。
所述为字符串设置对应的指针为:
为电子游戏中的相同字符串设置同一指针。
所述为字符串设置对应的指针为:
a、设置内存空间,所述内存空间用于存储已处理的字符串;
b、设置映射信息,包括已处理的哈希值及对应的已处理字符串的指针;
c、将要处理的字符串通过哈希算法计算,得到哈希值;
d、在映射信息中查找是否已经存在相同的哈希值,如果是,执行步骤e;如果否,则执行步骤h;
e、客户端判断要处理的字符串是否与相同哈希值对应的已处理并存储的字符串相等,如果否,执行步骤f;如果是,执行步骤g;
f、客户端将要处理的字符串的哈希值增加1后,返回步骤d继续执行;
g、客户端在映射信息中存储与要处理的字符串具有相同哈希值的已处理并存储的字符串的指针;
h、客户端将要处理的字符串作为已处理的字符串存储到设置的内存空间中,并将对应的哈希值及指针存储到映射信息中。
所述映射信息为映射地图map,其中的整形数值为已处理的字符串的哈希值,记为key,指针为value,表示指向已处理的字符串的char*指针。
一种字符串比较的装置,包括:预先处理单元、存储单元及比较操作单元,其中,
预先处理单元,用于处理电子游戏中的字符串,为字符串设置对应的指针;
存储单元,用于存储字符串和指针的对应关系;
比较操作单元,用于接收到比较字符串指令后,根据字符串对应的指针确定字符串是否相同。
所述预先处理单元,还用于将电子游戏中的相同字符串设置同一指针。
所述比较操作单元,还用于确定如果字符串对应的指针不相同,则字符串不相同,如果字符串对应的指针相同,则字符串相同。
由上述方案可以看出,本发明实施例预先对要处理的电子游戏程序中的字符串对应指针,当后续接收到电子游戏程序中的字符串比较指令时,直接比较字符串对应的指针是否相等即可。更进一步地,在对要处理的电子游戏程序中的字符串对应指针时,进行字符串的比较,对相同的字符串设置唯一的指针,从而更加简便且快速地完成电子游戏程序的字符串的比较,提高了比较速度,提高电子游戏程序的性能和运算速度。
附图说明
图1为本发明实施例提供的字符串比较的方法流程图;
图2为本发明实施例提供的为所处理的电子游戏中的字符串设置指针的方法流程图;
图3为本发明实施例提供的字符串比较的装置结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。
为了提高电子游戏程序的字符串的比较速度,从而提高电子游戏程序的性能和运算速度,特别是在电子游戏程序的数据量大且客户端处理能力低的情况下,使得电子游戏程序不出现延迟,提高玩家的体验度。本发明实施例预先对要处理的电子游戏程序中的字符串对应指针,当后续接收到电子游戏程序中的字符串比较指令时,直接比较字符串对应的指针是否相等即可。更进一步地,在对要处理的电子游戏程序中的字符串对应指针时,进行字符串的比较,对相同的字符串设置唯一的指针。
图1为本发明实施例提供的字符串比较的方法流程图,其具体步骤为:
步骤101、客户端处理电子游戏中的字符串,为字符串设置对应的指针;
步骤102、客户端接收到比较字符串指令后,根据字符串对应的指针确定字符串是否相同。
在本步骤中,如果字符串对应的指针不相同,则字符串不相同,如果字符串对应的指针相同,则字符串相同。
在该方法中,电子游戏中的相同字符串,在步骤101中设置的指针是相同的。
在该方法中的步骤101中,客户端处理电子游戏中的字符串,为字符串设置对应的指针如图2所示,图2为本发明实施例提供的为所处理的电子游戏中的字符串设置指针的方法流程图,其具体步骤为:
步骤201、客户端设置内存空间,所述内存空间存储已处理的电子游戏的字符串;
步骤202、客户端设置映射信息,包括已处理的字符串的哈希值及对应的指针;
在本步骤中,映射信息为映射地图(map),其中的整形数值设置为已处理的字符串的哈希值,记为key,指针为value,表示指向已处理的字符串的char*指针;
步骤203、客户端将要处理的字符串通过哈希算法计算,得到要处理的哈希值;
步骤204、客户端在映射信息中查找是否已经存在相同的哈希值,如果是,执行步骤205;如果否,则执行步骤208;
步骤205、客户端判断字符串是否与已经存储的相同哈希值对应的字符串相等,如果否,执行步骤206;如果是,执行步骤207;
在本步骤中,有一些要处理的字符串虽然计算的哈希值与已经处理并存储的字符串相同,但是要处理的字符串与已经处理的字符串却不同,称为碰撞哈希情况;为了避免出现这种情况,就需要进一步对要处理的字符串与已经处理并存储的字符串进行进一步比较;
步骤206、客户端将要处理的字符串的哈希值增加1后,返回步骤204继续执行;
在本步骤中,更改要处理的字符串的哈希值,使得出现碰撞哈希的情况降低;
步骤207、客户端在映射信息中返回与要处理的字符串具有相同哈希值的已经处理并存储的字符串的指针;
步骤208、客户端将要处理的字符串存储到设置的内存空间中,并将计算的要处理的字符串的哈希值及指针存储到映射信息中。
这样,客户端就为电子游戏中的每个字符串都设置了指针,且其中的相同字符串的指针相同。
等到后续客户端接收到比较字符串的指令后,直接调取字符串的指针进行比较,就可以确定字符串是否相同。完成了电子游戏中的字符串的比较工作。
在本发明实施例中,计算要处理的字符串的哈希值算法为,设定哈希种子及字符串,求出哈希值,哈希种子为计算哈希值采用的累乘因子,该例子设置为131,采用的哈希值计算的函数为BKDRHash,具体为:
在本发明实施例中,在map中查找是否有相同的哈希值并对字符串进行处理的具体过程为:
图3为本发明实施例提供的字符串比较的装置结构示意图,如图所示,包括:预先处理单元、存储单元及比较操作单元,其中,
预先处理单元,用于处理电子游戏中的字符串,为字符串设置对应的指针;
存储单元,用于存储字符串和指针的对应关系;
比较操作单元,用于接收到比较字符串指令后,根据字符串对应的指针确定字符串是否相同。
在该结构中,所述预先处理单元,还用于将电子游戏中的相同字符串设置同一指针。
在该结构中,所述比较操作单元,还用于确定如果字符串对应的指针不相同,则字符串不相同,如果字符串对应的指针相同,则字符串相同。
以上举较佳实施例,对本发明的目的、技术方案和优点进行了进一步详细说明,所应理解的是,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种字符串比较的方法,其特征在于,包括:
处理电子游戏中的字符串,为字符串设置对应的指针;
接收比较字符串指令后,根据字符串对应的指针确定字符串是否相同。
2.如权利要求1所述的方法,其特征在于,所述根据字符串对应的指针确定字符串是否相同为:
如果字符串对应的指针不相同,则字符串不相同,如果字符串对应的指针相同,则字符串相同。
3.如权利要求1所述的方法,其特征在于,所述为字符串设置对应的指针为:
为电子游戏中的相同字符串设置同一指针。
4.如权利要求2所述的方法,其特征在于,所述为字符串设置对应的指针为:
a、设置内存空间,所述内存空间用于存储已处理的字符串;
b、设置映射信息,包括已处理的哈希值及对应的已处理字符串的指针;
c、将要处理的字符串通过哈希算法计算,得到哈希值;
d、在映射信息中查找是否已经存在相同的哈希值,如果是,执行步骤e;如果否,则执行步骤h;
e、客户端判断要处理的字符串是否与相同哈希值对应的已处理并存储的字符串相等,如果否,执行步骤f;如果是,执行步骤g;
f、客户端将要处理的字符串的哈希值增加1后,返回步骤d继续执行;
g、客户端在映射信息中存储与要处理的字符串具有相同哈希值的已处理并存储的字符串的指针;
h、客户端将要处理的字符串作为已处理的字符串存储到设置的内存空间中,并将对应的哈希值及指针存储到映射信息中。
5.如权利要求3所述的方法,其特征在于,所述映射信息为映射地图map,其中的整形数值为已处理的字符串的哈希值,记为key,指针为value,表示指向已处理的字符串的char*指针。
6.一种字符串比较的装置,其特征在于,包括:预先处理单元、存储单元及比较操作单元,其中,
预先处理单元,用于处理电子游戏中的字符串,为字符串设置对应的指针;
存储单元,用于存储字符串和指针的对应关系;
比较操作单元,用于接收到比较字符串指令后,根据字符串对应的指针确定字符串是否相同。
7.如权利要求6所述的装置,其特征在于,
所述预先处理单元,还用于将电子游戏中的相同字符串设置同一指针。
8.如权利要求6所述的装置,其特征在于,所述比较操作单元,还用于确定如果字符串对应的指针不相同,则字符串不相同,如果字符串对应的指针相同,则字符串相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610751100.7A CN106469186A (zh) | 2016-08-29 | 2016-08-29 | 一种字符串比较的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610751100.7A CN106469186A (zh) | 2016-08-29 | 2016-08-29 | 一种字符串比较的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106469186A true CN106469186A (zh) | 2017-03-01 |
Family
ID=58229947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610751100.7A Pending CN106469186A (zh) | 2016-08-29 | 2016-08-29 | 一种字符串比较的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106469186A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018158663A1 (en) * | 2017-03-03 | 2018-09-07 | International Business Machines Corporation | Compare string processing via inline decode-based micro-operations expansion |
US10324717B2 (en) | 2017-03-03 | 2019-06-18 | International Business Machines Corporation | Selecting processing based on expected value of selected character |
US10564967B2 (en) | 2017-03-03 | 2020-02-18 | International Business Machines Corporation | Move string processing via inline decode-based micro-operations expansion |
US10613862B2 (en) | 2017-03-03 | 2020-04-07 | International Business Machines Corporation | String sequence operations with arbitrary terminators |
US10620956B2 (en) | 2017-03-03 | 2020-04-14 | International Business Machines Corporation | Search string processing via inline decode-based micro-operations expansion |
CN111090982A (zh) * | 2018-10-24 | 2020-05-01 | 迈普通信技术股份有限公司 | 文本比较方法、装置、电子设备及计算机可读存储介质 |
US10789069B2 (en) | 2017-03-03 | 2020-09-29 | International Business Machines Corporation | Dynamically selecting version of instruction to be executed |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1866203A (zh) * | 2005-05-20 | 2006-11-22 | 腾讯科技(深圳)有限公司 | 一种字符串引用方法 |
CN101783803A (zh) * | 2010-01-29 | 2010-07-21 | 中兴通讯股份有限公司 | 一种网页过滤方法及数据卡 |
CN102117217A (zh) * | 2010-11-29 | 2011-07-06 | 福建新大陆通信科技股份有限公司 | 一种机顶盒脚本扩充函数的方法 |
CN103139224A (zh) * | 2011-11-22 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 一种网络文件***及网络文件***的访问方法 |
CN103309893A (zh) * | 2012-03-15 | 2013-09-18 | 阿里巴巴集团控股有限公司 | 一种字符串的比较方法及装置 |
-
2016
- 2016-08-29 CN CN201610751100.7A patent/CN106469186A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1866203A (zh) * | 2005-05-20 | 2006-11-22 | 腾讯科技(深圳)有限公司 | 一种字符串引用方法 |
CN101783803A (zh) * | 2010-01-29 | 2010-07-21 | 中兴通讯股份有限公司 | 一种网页过滤方法及数据卡 |
CN102117217A (zh) * | 2010-11-29 | 2011-07-06 | 福建新大陆通信科技股份有限公司 | 一种机顶盒脚本扩充函数的方法 |
CN103139224A (zh) * | 2011-11-22 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 一种网络文件***及网络文件***的访问方法 |
CN103309893A (zh) * | 2012-03-15 | 2013-09-18 | 阿里巴巴集团控股有限公司 | 一种字符串的比较方法及装置 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10564967B2 (en) | 2017-03-03 | 2020-02-18 | International Business Machines Corporation | Move string processing via inline decode-based micro-operations expansion |
US10613862B2 (en) | 2017-03-03 | 2020-04-07 | International Business Machines Corporation | String sequence operations with arbitrary terminators |
US10324716B2 (en) | 2017-03-03 | 2019-06-18 | International Business Machines Corporation | Selecting processing based on expected value of selected character |
US10372448B2 (en) | 2017-03-03 | 2019-08-06 | International Business Machines Corporation | Selecting processing based on expected value of selected character |
US10372447B2 (en) | 2017-03-03 | 2019-08-06 | International Business Machines Corporation | Selecting processing based on expected value of selected character |
GB2574567A (en) * | 2017-03-03 | 2019-12-11 | Ibm | Compare string processing via inline decode-based micro-operations expansion |
US10324717B2 (en) | 2017-03-03 | 2019-06-18 | International Business Machines Corporation | Selecting processing based on expected value of selected character |
US10564965B2 (en) | 2017-03-03 | 2020-02-18 | International Business Machines Corporation | Compare string processing via inline decode-based micro-operations expansion |
WO2018158663A1 (en) * | 2017-03-03 | 2018-09-07 | International Business Machines Corporation | Compare string processing via inline decode-based micro-operations expansion |
US10620956B2 (en) | 2017-03-03 | 2020-04-14 | International Business Machines Corporation | Search string processing via inline decode-based micro-operations expansion |
US10789069B2 (en) | 2017-03-03 | 2020-09-29 | International Business Machines Corporation | Dynamically selecting version of instruction to be executed |
GB2574567B (en) * | 2017-03-03 | 2020-05-27 | Ibm | Compare string processing via inline decode-based micro-operations expansion |
US10747532B2 (en) | 2017-03-03 | 2020-08-18 | International Business Machines Corporation | Selecting processing based on expected value of selected character |
US10747533B2 (en) | 2017-03-03 | 2020-08-18 | International Business Machines Corporation | Selecting processing based on expected value of selected character |
CN111090982A (zh) * | 2018-10-24 | 2020-05-01 | 迈普通信技术股份有限公司 | 文本比较方法、装置、电子设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106469186A (zh) | 一种字符串比较的方法及装置 | |
CN108961052B (zh) | 区块链数据的验证方法、存储方法、装置、设备和介质 | |
CN109804363B (zh) | 使用通过示例的格式修改的连接 | |
Drew et al. | Polymorphic malware detection using sequence classification methods | |
AU2017408800B2 (en) | Method and system of mining information, electronic device and readable storable medium | |
JP2021523464A5 (zh) | ||
EP3091450A1 (en) | Method and system for performing binary searches | |
CN104142915A (zh) | 一种添加标点的方法和*** | |
JP6912488B2 (ja) | 文字列距離計算方法及び装置 | |
CN106547743B (zh) | 一种进行翻译的方法及其*** | |
CN107609106B (zh) | 一种相似文章查找方法、装置、设备及存储介质 | |
US7343266B2 (en) | System and method for metadata verification during measurement processing | |
CN110569335A (zh) | 基于人工智能的三元组校验方法、装置及存储介质 | |
Mirghorbani et al. | On finding k-cliques in k-partite graphs | |
WO2013128684A1 (ja) | 辞書生成装置、方法、及びプログラム | |
CN109710950B (zh) | 双语对齐方法、装置及*** | |
CN107341224A (zh) | 一种字符串的匹配方法及装置 | |
CN110442843B (zh) | 字符替换方法、***、计算机设备及计算机可读存储介质 | |
CN104680043B (zh) | 一种可执行文件的保护方法及装置 | |
CN110263540A (zh) | 一种代码标识方法及装置 | |
JP6194180B2 (ja) | 文章マスク装置及び文章マスクプログラム | |
CN113792232B (zh) | 页面特征计算方法、装置、电子设备、介质及程序产品 | |
CN105988991A (zh) | 一种姓氏所属语种的识别方法、装置及服务器 | |
Akram et al. | Grammatical inference algorithms in matlab | |
CN103488616A (zh) | 一种内嵌字体处理方法与装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170301 |
|
RJ01 | Rejection of invention patent application after publication |