太阳城集团

  • / 9
  • 下载费用:30 金币  

一种手机号码的存储方法及查询方法.pdf

摘要
申请专利号:

CN201611198829.2

申请日:

2016.12.22

公开号:

CN106777178A

公开日:

2017.05.31

当前法律状态:

实审

有效性:

审中

法律详情: 实质审查的生效IPC(主分类):G06F 17/30申请日:20161222|||公开
IPC分类号: G06F17/30 主分类号: G06F17/30
申请人: 上海大汉三通无线通信有限公司
发明人: 黄筱芬; 蒋文彬; 李龙飞; 王利华; 赵鸿; 曾斯生; 朱万林; 肖辉
地址: 202172 上海市崇明县星村公路700号3幢108-6室(上海新海经济开发区)
优先权:
专利代理机构: 北京集佳知识产权代理有限公司 11227 代理人: 罗满
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

太阳城集团CN201611198829.2

授权太阳城集团号:

|||

法律状态太阳城集团日:

2018.01.12|||2017.05.31

法律状态类型:

太阳城集团实质审查的生效|||公开

摘要

本发明公开了一种手机号码的存储方法及查询方法,存储方法包括依据预设规则将手机号码按照号段和号尾分成两部分,并以号段和号尾组成的键值对构建存储区域;当接收到待存储手机号码时,依据预设规则解析待存储手机号码对应的目标号段和目标号尾;在存储区域中查找到目标号段的位置,并将目标号尾存储在目标号段对应的区域中。由于通过键值对将手机号码的号段和号尾关联起来,因此,当多个手机号码具有相同的键时,作为键的那部分数据可以只存储一次即可。另外,在进行数据查询时,可以依据键进行查询,如果没有对应的键,则也就无需继续查找,因此节约了查询太阳城集团。

权利要求书

1.一种手机号码的存储方法,其特征在于,包括:
依据预设规则将手机号码按照号段和号尾分成两部分,并以所述号段和号尾组成的键
值对构建存储区域;
当接收到待存储手机号码时,依据所述预设规则解析所述待存储手机号码对应的目标
号段和目标号尾;
在所述存储区域中查找到所述目标号段的位置,并将所述目标号尾存储在所述目标号
段对应的区域中。
2.根据权利要求1所述的手机号码的存储方法,其特征在于,所述预设规则为:所述号
段为所述待存储手机号码的前7位,所述号尾为所述待存储手机号码的后4位。
3.根据权利要求1或2所述的手机号码的存储方法,其特征在于,所述以所述号段和号
尾组成的键值对构建存储区域具体包括:
以所述号段作为第一索引,并作为所述键值对中的键;
以所述号尾作为第二索引,并作为所述键值对中的值。
4.根据权利要求3所述的手机号码的存储方法,其特征在于,所述以所述号尾作为第二
索引具体包括:
依据所述号尾的取值范围将所述号尾映射到长度为313的整型数组中,以所述整型数
组中的长度序号作为所述第二索引;
其中,所述长度序号为0-312,且各所述长度序号下均包含32个存储位置序号,所述长
度序号=所述号尾/32,所述存储位置序号=所述号尾%32。
5.根据权利要求1所述的手机号码的存储方法,其特征在于,所述在所述存储区域中查
找到所述目标号段的位置,并将所述目标号尾存储在所述目标号段对应的区域中具体包
括:
依据所述目标号段的值在所述存储区域中查找到所述目标号段的位置;
判断所述目标号段的位置中是否已经添加过所述目标号段;
如果是,则将所述目标号尾存储在所述目标号段对应的区域中;
如果否,则在所述目标号段的位置中添加所述目标号段,并将所述目标号尾存储在所
述目标号段对应的区域中。
6.一种手机号码的查询方法,其特征在于,包括:
当接收到待查询手机号码时,解析所述待查询手机号码对应的目标号段和目标号尾;
在以号段和号尾组成的键值对所构建的存储区域中,判断是否存在与所述目标号段相
同的号段;其中,所述号段和所述号尾为依据预设规则将手机号码分成的两部分;
如果存在与所述目标号段相同的号段,则在所述目标号段对应的存储区域中判断是否
存在与所述目标号尾相同的号尾;
如果存在与所述目标号尾相同的号尾,则确定所述存储区域包含所述待查询手机号
码;
如果不存在与所述目标号段相同的号段或如果不存在与所述目标号尾相同的号尾,则
确定所述存储区域不包含所述待查询手机号码。
7.根据权利要求6所述的手机号码的查询方法,其特征在于,所述预设规则为:所述号
段为所述待存储手机号码的前7位,所述号尾为所述待存储手机号码的后4位。

说明书

一种手机号码的存储方法及查询方法

技术领域

本发明涉及数据存储技术领域,特别是涉及一种手机号码的存储方法及查询方
法。

背景技术

在电信行业,因为某些客户在使用手机号码时出现违约等信用问题,需要对其所
能订购的业务做相应的限制,即将其加入黑名单。然后将这些上了黑名单的手机号码存储
在数据库或内存中,以便后续查询。

在进行业务操作时,为了查询当前一个手机号码是否为黑名单中的号码,需要遍
历整个黑名单中的手机号码,以此来确定黑名单中是否存在与当前手机号码相同的手机号
码。如果是,则说明当前手机号码上了黑名单,要限制该手机号码的相关业务操作;如果没
有,则说明当前手机号码没有上黑名单,可以对该手机号码进行正常的业务操作。

由此可见,采用现有技术中的存储方式,导致在进行手机号码查询时需要遍历整
个黑名单中的手机号码,随着黑名单中的手机号码的增多,数量可能达到几万,甚至千万。
因此,查询太阳城集团有可能非常长,这样降低了查询的效率。另外,手机号码的增多也给存储带
来了巨大的压力,如果存储在数据库中,则每次查询的速度较低,如果存储在内存中,虽然
查询的速度会加快,但是导致内存的占用空间非常大。

由此可见,如何降低存储空间的压力,以及如何实现手机号码的快速查询以降低
查询太阳城集团是本领域技术人员亟待解决的问题。

发明内容

本发明的目的是提供一种手机号码的存储方法及查询方法,用于降低存储空间的
压力,以及实现手机号码的快速查询以降低查询太阳城集团。

为解决上述技术问题,本发明提供一种手机号码的存储方法,包括:

依据预设规则将手机号码按照号段和号尾分成两部分,并以所述号段和号尾组成
的键值对构建存储区域;

当接收到待存储手机号码时,依据所述预设规则解析所述待存储手机号码对应的
目标号段和目标号尾;

在所述存储区域中查找到所述目标号段的位置,并将所述目标号尾存储在所述目
标号段对应的区域中。

优选地,所述预设规则为:所述号段为所述待存储手机号码的前7位,所述号尾为
所述待存储手机号码的后4位。

优选地,所述以所述号段和号尾组成的键值对构建存储区域具体包括:

以所述号段作为第一索引,并作为所述键值对中的键;

以所述号尾作为第二索引,并作为所述键值对中的值。

优选地,所述以所述号尾作为第二索引具体包括:

依据所述号尾的取值范围将所述号尾映射到长度为313的整型数组中,以所述整
型数组中的长度序号作为所述第二索引;

其中,所述长度序号为0-312,且各所述长度序号下均包含32个存储位置序号,所
述长度序号=所述号尾/32,所述存储位置序号=所述号尾%32。

优选地,所述在所述存储区域中查找到所述目标号段的位置,并将所述目标号尾
存储在所述目标号段对应的区域中具体包括:

依据所述目标号段的值在所述存储区域中查找到所述目标号段的位置;

判断所述目标号段的位置中是否已经添加过所述目标号段;

如果是,则将所述目标号尾存储在所述目标号段对应的区域中;

如果否,则在所述目标号段的位置中添加所述目标号段,并将所述目标号尾存储
在所述目标号段对应的区域中。

为解决上述技术问题,本发明提供一种手机号码的查询方法,包括:

当接收到待查询手机号码时,解析所述待查询手机号码对应的目标号段和目标号
尾;

在以号段和号尾组成的键值对所构建的存储区域中,判断是否存在与所述目标号
段相同的号段;其中,所述号段和所述号尾为依据预设规则将手机号码分成的两部分;

如果存在与所述目标号段相同的号段,则在所述目标号段对应的存储区域中判断
是否存在与所述目标号尾相同的号尾;

如果存在与所述目标号尾相同的号尾,则确定所述存储区域包含所述待查询手机
号码;

如果不存在与所述目标号段相同的号段或如果不存在与所述目标号尾相同的号
尾,则确定所述存储区域不包含所述待查询手机号码。

优选地,所述预设规则为:所述号段为所述待存储手机号码的前7位,所述号尾为
所述待存储手机号码的后4位。

本发明所提供的手机号码的存储方法,由于通过键值对将手机号码的号段和号尾
关联起来,因此,当多个手机号码具有相同的键时,作为键的那部分数据可以只存储一次即
可,无需重复存储,然后再将作为键值对中的值的那部分数据存储即可。另外,在进行数据
查询时,可以依据键进行查询,如果没有对应的键,则也就无需继续查找,因此节约了查询
太阳城集团。由此可见,该存储方法可以克服现有技术中对手机号码的全部数据进行存储所带来
的问题,不仅降低了存储空间,而且降低了查询太阳城集团,提高了查询速度。

此外本发明所提供的手机号码的查询方法,以号段和号尾构成的键值对依次进行
查找,首先是在存储区域中查找是否存在目标号段,如果不存在,则说明存储区域不包含待
查询手机号码;如果存在,则在存储区域中查找是否存在目标号尾,如果存在,则说明存储
区域包含待查询手机号码,否则,存储区域不包含待查询手机号码。由此可见,相对于现有
技术中,对遍历存储区域中的每个完整的手机号码来说,本方法的查询速度快,能够节约查
询太阳城集团。

附图说明

为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的
介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人
员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种手机号码的存储方法的流程图;

图2为本发明实施例提供的一种手机号码的查询方法的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完
整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本
发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他
实施例,都属于本发明保护范围。

本发明的核心是提供一种手机号码的存储方法及查询方法,用于降低存储空间的
压力,以及实现手机号码的快速查询以降低查询太阳城集团。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式
对本发明作进一步的详细说明。

图1为本发明实施例提供的一种手机号码的存储方法的流程图。如图1所示,包括:

S10:依据预设规则将手机号码按照号段和号尾分成两部分,并以号段和号尾组成
的键值对构建存储区域。

在具体实施中,手机号码的格式一般为11位,以1开头,目前手机号码的范围为
13000000000-18999999999。依据预设规则,将手机号码分为号段和号尾两部分,需要说明
的是,这里的手机号码并不是某一个特定的手机号码,是全部手机号码的统称,适用于任意
一个手机号码。号段和号尾构成一个完整的手机号码,因此,本步骤中,将号段和号尾组成
键值对,以键值对的方式构建一个存储区域。这样在这个存储区域中,通过键值对的方式将
待存储的手机号码进行存储。可以理解的是,一个键能够对应多个值,例如在手机号码中,
如果号段为键的话,则号尾就是这个键的值。相同的键,不同的值,则表示不同的数据,因此
相同的号段,不同的号尾,就表示不同的手机号码。可以理解的是,号段和号尾的划分方式
有多种,即预设规则有多种,可以前7位和后4位,本实施例不做限定。

S11:当接收到待存储手机号码时,依据预设规则解析待存储手机号码对应的目标
号段和目标号尾。

可以理解的是,本步骤中的解析待存储手机号码时要与步骤S10中的预设规则相
同,例如如果预设规则是将手机号码的前7位作为号段,后4位作为号尾的话,则本步骤中,
也需要将待存储手机号码的前7位作为目标号段,后4位作为目标号尾。需要说明的是,上文
中说的号段和号尾是一种广义上表达方式,号段和号尾中并不是特指某一个具体的数据。
而由于待存储手机号码中的数据是确定的,因此目标号段和目标号尾中的数据也是确定
的,与上文中说的号段和号尾不同。换句话说,目标号段是号段中的一种,目标号尾也是号
尾中的一种。

S12:在存储区域中查找到目标号段的位置,并将目标号尾存储在目标号段对应的
区域中。

当确定了目标号段后,根据目标号段中的具体数据在存储区域中查找到目标号段
的位置。如果存储区域中是按照号段的大小顺序排列的,当目标号段为1300000,则该目标
号段的位置就在存储区域的第一个位置。

找到了目标号段的位置,则将目标号尾存储在目标号段对应的区域中即可。

综上所述,如果要存储两个手机号码,分别为15001868406和15001868407,则依据
上述步骤,这两个手机号码的号段是相同的,即目标号段均为1500186,目标号尾分别为
8406和8407,则在存储时,只需要在目标号段1500186的位置存储1500186,在该号段的存储
区域中存储8406和8407即可。由此可见,本方法使得具有相同号段的手机号码只需要存储
号尾,然后通过键值对关联即可,无需多次重复存储号段。

本实施例提供的手机号码的存储方法,包括依据预设规则将手机号码按照号段和
号尾分成两部分,并以号段和号尾组成的键值对构建存储区域;当接收到待存储手机号码
时,依据预设规则解析待存储手机号码对应的目标号段和目标号尾;在存储区域中查找到
目标号段的位置,并将目标号尾存储在目标号段对应的区域中。由于通过键值对将手机号
码的号段和号尾关联起来,因此,当多个手机号码具有相同的键时,作为键的那部分数据可
以只存储一次即可,无需重复存储,然后再将作为键值对中的值的那部分数据存储即可。另
外,在进行数据查询时,可以依据键进行查询,如果没有对应的键,则也就无需继续查找,因
此节约了查询太阳城集团。由此可见,该存储方法可以克服现有技术中对手机号码的全部数据进
行存储所带来的问题,不仅降低了存储空间,而且降低了查询太阳城集团,提高了查询速度。

在上述实施例的基础上,作为优选的实施方式,预设规则为:号段为待存储手机号
码的前7位,号尾为待存储手机号码的后4位。

可以理解的是,本实施方式只是众多实施方式中的一种,并不是只有这以种方式。

在上述实施例的基础上,作为优选的实施方式,以号段和号尾组成的键值对构建
存储区域具体包括:

以号段作为第一索引,并作为键值对中的键;

以号尾作为第二索引,并作为键值对中的值。

可以理解的是,将号段作为键还是将号尾作为键并没有严格的区别,但是考虑到
用户的阅读习惯,本实施例中将号段作为键值对中的键,将号尾作为键值对中的值。本实施
例中,将号段作为第一索引,就是首先进行号段的存储,如果号段作为键值对中的键的话,
则键就是第一索引。这样,在进行手机号码的存储中,通过第一索引找到目标号段的位置。
号尾作为第二索引的原理相同,本实施例不再赘述。

作为优选的实施方式,以号尾作为第二索引具体包括:

依据号尾的取值范围将号尾映射到长度为313的整型数组中,以整型数组中的长
度序号作为第二索引;

其中,长度序号为0-312,且各长度序号下均包含32个存储位置序号,长度序号=
号尾/32,存储位置序号=号尾%32。

本实施例中,以号尾为手机号码的后四位为例说明。后四位从0000-9999,共10000
个,因此,原则上,一个键要对应10000个值。在JAVA中,我们可以将号尾映射到一个整型数
组,以方便存储。如果第二索引下对应32个号尾的话,则需要整数数组的长度为313(313*32
=10016)才可以满足号尾的取值范围。以长度序号进行划分,长度序号依次为0-312。这样
每一个长度序号下可以存储32个数据,分别为0-31。

对于15001868406和15001868407,这两个手机号码的目标号尾分别为8406和
8407,则在存储时,首先计算第二索引即长度序号,长度序号通过号尾除以32计算得到,对
于这两个手机号码来说,均为262,存储位置序号通过号尾除以32取余得到,分别为22和23。
因此,本实施例中,相当于又把号尾分成了两个关联的存储结构,具有相同长度序号的号
尾,只需要存储取模运算后的数据即可。需要说明的是,本文中,如果没有特殊说明,则均为
十进制数据,本文中的存储均是按照二进制存储的。

由上述描述可知,8个手机号码的号尾共占用1个字节单位(1个整型可存储32个号
尾,Java语言中1个整型占4个字节)。通过计算,如果黑名单上包括了全部的号码,
13000000000-18999999999,则全部存储所需的空间为313*4*600000个字节,即716MB。其
中,313是数组的长度,4是4个字节(32位就是4个字节),600000是60万个键值对中的键(号
码的前7位1300000-1899999,即190万-130万=60万个键)。由此可见,本存储方法只需要
716MB的存储空间就可以将全部的手机号码存储,很显然,不是所有的手机号码都加入黑名
单,因此,实际所需要的存储空间会更小,适合放在内存中存储。这样在后续的数据查询时,
直接在内存中进行数据的查询,则查询速度更快。

由此可见,在本实施例中,如果以这样的存储方式进行存储的话,则在第一索引相
同的情况下,不需要重复存储号段,在这样的情况下,如果具有相同的第二索引的话,则只
需要存储取模运算后的数据即可。因此,进一步减少了存储空间的压力。

作为优选的实施方式,在存储区域中查找到目标号段的位置,并将目标号尾存储
在目标号段对应的区域中具体包括:

依据目标号段的值在存储区域中查找到目标号段的位置;

判断目标号段的位置中是否已经添加过目标号段;

如果是,则将目标号尾存储在目标号段对应的区域中;

如果否,则在目标号段的位置中添加目标号段,并将目标号尾存储在目标号段对
应的区域中。

与上述实施例系统的部分本实施例不再赘述,对于预先构建的存储区域来说,有
可能目标号段的位置是空的,即存储区域中不包含有该号段的手机号码,因此,如果目标号
段的位置没有添加该号段,则需要首先将该号段添加到该位置,然后再将目标号尾存储在
对应的区域中。

可以理解的是,对于目标号段和目标号尾均存在的话,则不需要再次存储。

图2为本发明实施例提供的一种手机号码的查询方法的流程图。如图2所示,包括:

S20:当接收到待查询手机号码时,解析待查询手机号码对应的目标号段和目标号
尾。

S21:在以号段和号尾组成的键值对所构建的存储区域中,判断是否存在与目标号
段相同的号段。其中,号段和号尾为依据预设规则将手机号码分成的两部分。如果存在与目
标号段相同的号段,则进入步骤S22,否则进入步骤S24。

S22:在目标号段对应的存储区域中判断是否存在与目标号尾相同的号尾。如果存
在与目标号尾相同的号尾,则进入步骤S23,否则进入步骤S24。

S23:确定存储区域包含待查询手机号码。

S24:确定存储区域不包含待查询手机号码。

本实施例中,提到的以号段和号尾为依据预设规则将手机号码分成的两部分,以
及以号段和号尾组成的键值对所构建的存储区域这两部分所对应的实施方式与手机号码
的存储方法部分的实施方式相同,因此,本实施例不再赘述。

按照上述存储方式进行存储后,如果对一个手机号码进行查询,首先就是按照预
设规则解析出目标号段和目标号尾。然后判断存储区域中是否包含目标号段,可以理解的
是,如果不包含该目标号段,则一定不包含该手机号码,因此,也就不需再进行查找。可以理
解的是,对于号段的查询要比一个完整的手机号码的查询的速度要快,因为一个完整的手
机号码的位数要明显较多。如果包含该目标号段,则说明存储区域中有可能包含该手机号
码,需要进一步查找,但是此时查找的范围仅仅是在该目标号段对应的区域中,因此,查询
的范围已经缩小了,也就能相应的加快查询的速度。

本实施例提供的手机号码的查询方法,以号段和号尾构成的键值对依次进行查
找,首先是在存储区域中查找是否存在目标号段,如果不存在,则说明存储区域不包含待查
询手机号码;如果存在,则在存储区域中查找是否存在目标号尾,如果存在,则说明存储区
域包含待查询手机号码,否则,存储区域不包含待查询手机号码。由此可见,相对于现有技
术中,对遍历存储区域中的每个完整的手机号码来说,本方法的查询速度快,能够节约查询
太阳城集团。

作为优选的实施方式,预设规则为:号段为待存储手机号码的前7位,号尾为待存
储手机号码的后4位。

可以理解的是,本实施方式只是众多实施方式中的一种,并不是只有这以种方式。

以上对本发明所提供的一种手机号码的存储方法及查询方法进行了详细介绍。说
明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同
之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与
实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指
出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明
进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

关 键 词:
一种 手机号码 存储 方法 查询
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
太阳城集团本文
本文标题:一种手机号码的存储方法及查询方法.pdf
链接地址:http://zh228.com/p-6019745.html
太阳城集团我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
葡京赌场|welcome document.write ('');