一种电话号码压缩存储及解压缩方法及存储系统
技术领域
本发明涉及移动终端领域,尤其涉及的是一种电话号码压缩存储及解压缩方法及存储系统。
背景技术
在现有的电话号码是按字符存储在移动终端存储器中的,例如电话号码13515886290是将字符‘1’、‘3’、‘5’、‘1’、‘5’、‘8’、‘8’、‘6’、‘2’、‘9’、‘0’存储在存储器中;在存储时,号码与号码之间无任何联系,存储时,如果号码长度一样,所占的存储空间也是一样的。
由于有些移动终端中存储空间有限,仅仅是存储电话号码就占据了较多空间,就会使得存储器的利用率较低,不能预留更多的存储空间来存储其他固件、应用软件等。
因此,现有技术还有待于改进和发展。
发明内容
鉴于上述现有技术的不足,本发明的目的在于提供一种电话号码压缩存储及解压缩方法及存储系统,旨在解决现有技术中存储器容量较小的移动终端存储手机号码占用较多空间的问题。
本发明的技术方案如下:
一种电话号码压缩存储方法,其中,所述方法包括以下步骤:
A. 将存储在移动终端中的所有电话号码转变为补齐码后由小到大进行排序,排序后将所有补齐码编号;
B. 记录序号为1的电话号码,在对其余电话号码进行压缩时,比较其补齐码与序号前一位的补齐码,从高位开始逐个进行比较,直到比较到两个补齐码有不同字符为止,只保留该不同字符及之后的所有字符,得到各电话号码的压缩码;
C. 存储所述各电话号码的压缩码。
所述电话号码压缩存储方法,其中,所述步骤A具体包括:
A1. 获取移动终端存储的电话号码中字符串长度最长的号码得到一最大长度,采用预定字符对长度小于最大长度的其他电话号码的前面进行补齐处理得到其他电话号码的补齐码,以统一所有补齐码长度;
A2. 将所有补齐码按由小到大的顺序进行排序;
A3. 排序完成后,对每个补齐码按顺序标上序号,最小的补齐码的序号标为1,然后按升序对其他补齐码进行标号。
所述电话号码压缩存储方法,其中,所述步骤B具体包括:
B1. 保留序号为1的原始电话号码;
B2. 比较补齐后的序号为M的补齐码和序号为M-1的补齐码,按高位优先进行比较,找到第一个不同的字符,只保留该字符及其之后的字符及序号M;
其中,M为大于等于2且小于等于N的自然数,N为移动终端中存储电话号码的总个数。
所述电话号码压缩存储方法,其中,所述步骤A2中的排序规则还包括:按高位优先进行比较,先比较高位字符,后比较低位字符。
所述电话号码压缩存储方法,其中,所述步骤A2中的排序规则包括:设置所述预定字符的大小小于0。
一种电话号码解压缩方法,其中,所述方法包括以下步骤:
S1、将所有压缩后的压缩码对应的字符按序号依次排列;
S2、记录序号为1的的电话号码,比较序号为M-1的压缩码和序号为M的压缩码的两者间字符串长度的大小,若等于或大于,则序号为M的压缩码即为原码,若小于则将序号为M-1的原码的低L位用序号为M的压缩码替换即为序号为M的原码;
其中,L为序号为M的压缩码字符串长度;M为大于等于2且小于等于N的自然数;N为移动终端中存储电话号码的总个数。
S3、根据序号获取相应的电话号码。
一种电话号码的存储系统,包括编码器和解码器,其中,所述编码器包括压缩排序模块、存储模块和压缩模块,所述解码器包括解压缩排序模块和解压缩模块,其中:
所述压缩排序模块,用于将移动终端中存储的所有电话号码进行排序;
所述压缩模块,用于将经过压缩排序模块排序后的电话号码进行压缩;
所述存储模块,用于将经过压缩模块压缩后的电话号码保存;
所述解压缩排序模块,用于将从存储模块中压缩后的电话号码根据序号进行排序;
所述解压缩模块,用于将经过解压缩排序模块排序后的压缩码进行解压缩,还原成原电话号码。
所述电话号码的存储系统,其中,所述压缩排序模块还包括号码长度获取单元、补齐码生成单元、补齐码比较单元和补齐码传输单元,其中:
所述号码长度获取单元,用于获取移动终端中所有电话号码的原始号码的字符串长度,并获取其中字符串长度最长的原始号码的长度;
所述补齐码生成单元,用于将所有电话号码的原始号码通过在高位添加所述预定字符的方式都补齐到和长度最长的原始号码的长度一致,得到所有电话号码的补齐码;
所述补齐码比较单元,用于所有电话号码的补齐码进行比较,并将补齐码按照从小到大的顺序排列,并将排序后的补齐码从1按升序进行编号;
所述补齐码传输单元,用于将经过补齐码比较单元排序后的补齐码传输至存储单元保存。
所述电话号码的存储系统,其中,所述补齐码比较单元中比较补齐码间的大小遵循的规则包括:
规则一、按高位优先进行比较,先比较高位字符,后比较低位字符;
规则二、设置所述预定字符的大小小于0。
本发明所提供的一种电话号码压缩存储及解压缩方法及存储系统,移动终端中电话号码的压缩步骤包括:A. 将存储在移动终端中的所有电话号码转变为补齐码后由小到大进行排序,排序后将所有补齐码编号;B. 记录序号为1的电话号码,在对其余电话号码进行压缩时,比较其补齐码与序号前一位的补齐码,从高位开始逐个进行比较,直到比较到两个补齐码有不同字符为止,只保留该不同字符及之后的所有字符,得到各电话号码的压缩码;C. 存储所述各电话号码的压缩码。采用本发明可使电话号码压缩存储,解决存储器容量较小的移动终端存储手机号码占用较多空间的问题,提高存储器的利用率。
附图说明
图1为本发明提供的一种电话号码压缩存储方法的步骤流程图。
图2为图1所示方法中电话号码排序的具体流程图。
图3为图1所示方法中电话号码压缩的具体流程图。
图4为本发明提供的一种电话号码解压缩方法的步骤流程图。
图5为本发明提供的一种电话号码的存储系统的结构框图。
图6为本发明提供的一种电话号码的存储系统编码器较佳实施例的结构框图。
图7为本发明提供的一种电话号码的存储系统解码器较佳实施例的结构框图。
具体实施方式
本发明提供一种电话号码压缩存储及解压缩方法及存储系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下结合图1对本发明所述电话号码压缩存储方法做详细说明,其中,图1是本发明提供的一种电话号码压缩存储方法的步骤流程图。
步骤S101、将存储在移动终端中的所有电话号码转变为补齐码后由小到大进行排序,排序后将所有补齐码编号;
步骤S102、记录序号为1的电话号码,在对其余电话号码进行压缩时,比较其补齐码与序号前一位的补齐码,从高位开始逐个进行比较,直到比较到两个补齐码有不同字符为止,只保留该不同字符及之后的所有字符,得到各电话号码的压缩码;
步骤S103、存储所述各电话号码的压缩码。
其中,所述补齐码是采用预定字符对长度小于最大长度的其他电话号码的前面进行补齐,直至统一所有电话号码的长度而得到的新电话号码;所述压缩码是原电话号码按照所述压缩方法压缩后得到的新电话号码。
在现有的电话号码是按字符存储在移动终端存储器中的,例如电话号码13515886290是将字符‘1’、‘3’、‘5’、‘1’、‘5’、‘8’、‘8’、‘6’、‘2’、‘9’、‘0’存储在存储器中;在存储时,号码与号码之间无任何联系,存储时,如果号码长度一样,所占的存储空间也是一样的,若需存储的另一个号码为13515886291,采用本发明的电话号码压缩存储方法,可以将后一个号码压缩成字符‘1’用来存储,此时在存储13515886291这个电话号码时,只占1个字节,减少了电话号码存储所占的空间。
在步骤S101中,移动终端的电话号码需要进行排序,如图2所示,其包括步骤:
S201、获取移动终端存储的电话号码中字符串长度最长的号码得到一最大长度,采用预定字符对长度小于最大长度的其他电话号码的前面进行补齐处理得到其他电话号码的补齐码,以统一所有补齐码长度;
S202、将所有补齐码按由小到大的顺序进行排序;
S203、排序完成后,对每个补齐码按顺序标上序号,最小的补齐码的序号标为1,然后按升序对其他补齐码进行标号。
在步骤S102中,移动终端的电话号码经过排序后还需进行压缩,如图3所示,其包括步骤:
S301、保留序号为1的原始电话号码;
S302、比较补齐后的序号为M的补齐码和序号为M-1的补齐码,按高位优先进行比较,找到第一个不同的字符,只保留该字符及其之后的字符及序号M;
其中,M为大于等于2且小于等于N的自然数,N为移动终端中存储电话号码的总个数。
进一步地,所述电话号码压缩存储方法,其中,所述步骤S202中的排序规则还包括:按高位优先进行比较,先比较高位字符,后比较低位字符。
进一步地,所述电话号码压缩存储方法,其中,所述步骤S202中的排序规则包括:设置所述预定字符的大小小于0。
现举例说明采用该方法获得的压缩电话号码簿。假设移动终端中存储了五类常用电话号码共10个,先获取其中电话号码原码长度最长的号码的长度,参见表1可知,设定预定字符为“!”,原始号码长度最长的号码为057130986756和057410674711,这两个号码的字符串长度为12,剩余8个号码的字符串长度都小于12,这8个号码都通过在最高位前补充相应个数的字符“!”来形成新的电话号码即补齐码,例如表1中的110原始号码字符串长度为3,要将其字符串长度补齐至12位,则需要在最高位“1”之前补充9个字符“1”,形成的新的补齐码为“!!!!!!!!!110”,其他号码也采用这种方法补齐形成新的补齐码。
将10个号码都转化为补齐码之后,对其进行排序,排序主要遵循以下两个规则:规则一、按高位优先进行比较,先比较高位字符,后比较低位字符;规则二、设置所述预定字符的大小小于0。按照这两个规则排序后的补齐码顺序可参见表1,对排序后的补齐码从1按升序进行编号。
补齐码排序后序号为1的补齐码的压缩码仍为原始电话号码,如表1中的110。在对其余电话号码进行压缩时,比较其补齐码与序号前一位的补齐码,从高位开始逐个进行比较,直到比较到两个补齐码有不同字符为止,只保留该不同字符及之后的所有字符,得到各电话号码的压缩码。例如,表1中序号为2的电话号码为补齐码为“!!!!!!!!!911”,序号为3的电话号码补齐码为;“!!!!!!!10010”,序号为4的电话号码补齐码为“!!!!!!!10086”,可以看出序号为1和2的电话号码补齐码从最高位开始的9个字符都同为“!!!!!!!!!!”,从第10位开始的字符不同,则序号为2的电话号码的压缩码为“911”。同样可以看出序号为2和3的电话号码补齐码从最高位开始的7个字符都同为“!!!!!!!”,从第8位开始的字符不同,则序号为3的电话号码的压缩码为“10010”,继续可以看出序号为3和4的电话号码补齐码从最高位开始的10个字符都同为“!!!!!!!100”,从第11位开始的字符不同,则序号为3的电话号码的压缩码为“86”,按照相同的方法将剩下所有电话号码都转化为压缩码进行存储。
序号 |
原码 |
补齐码 |
压缩码 |
1 |
110 |
!!!!!!!!!110 |
110 |
2 |
911 |
!!!!!!!!!911 |
911 |
3 |
10010 |
!!!!!!!10010 |
10010 |
4 |
10086 |
!!!!!!!10086 |
86 |
5 |
27961100 |
!!!!27961100 |
27961100 |
6 |
27961930 |
!!!!27961930 |
930 |
7 |
13758512345 |
!13758512345 |
13758512345 |
8 |
13769012345 |
!13769012345 |
69012345 |
9 |
057130986756 |
057130986756 |
057130986756 |
10 |
057410674711 |
057410674711 |
410674711 |
表1
相应的,本发明还提供了一种电话号码解压缩方法,以下结合图4对本发明所述电话号码解压缩方法做详细说明,其中,图4是本发明提供的一种电话号码解压缩方法的步骤流程图。
S401、将所有压缩后的压缩码对应的字符按序号依次排列;
S402、记录序号为1的的电话号码,比较序号为M-1的压缩码和序号为M的压缩码的两者间字符串长度的大小,若等于或大于,则序号为M的压缩码即为原码,若小于则将序号为M-1的原码的低L位用序号为M的压缩码替换即为序号为M的原码;
S403、根据序号获取相应的电话号码。
其中,原码为原始电话号码的简称。
可以看出,移动终端中电话号码的解压缩过程就是压缩过程的逆向过程。
基于上述方法,本发明还提供了一种电话号码的存储系统,如图5所示,包括编码器100和解码器200,结合图6及图7可知,所述编码器100包括压缩排序模块110、压缩模块120和存储模块130,所述解码器200包括解压缩排序模块210和解压缩模块220,其中:
压缩排序模块110,用于将移动终端中存储的所有电话号码进行排序;
压缩模块120,用于将经过压缩排序模块110排序后的电话号码进行压缩;
存储模块130,用于将经过压缩模块120压缩后的电话号码保存;
解压缩排序模块210,用于将从存储模块130中压缩后的电话号码根据序号进行排序;
解压缩模块220,用于将经过解压缩排序模块210排序后的压缩码进行解压缩,还原成原电话号码。
较佳地,所述编码器100中的压缩排序模块110还包括号码长度获取单元、补齐码生成单元、补齐码比较单元和补齐码传输单元,其中:
号码长度获取单元,用于获取移动终端中所有电话号码的原始号码的字符串长度,并获取其中字符串长度最长的原始号码的长度;
补齐码生成单元,用于将所有电话号码的原始号码通过在高位添加所述预定字符的方式都补齐到和长度最长的原始号码的长度一致,得到所有电话号码的补齐码;
补齐码比较单元,用于所有电话号码的补齐码进行比较,并将补齐码按照从小到大的顺序排列,并将排序后的补齐码从1按升序进行编号;
补齐码传输单元,用于将经过补齐码比较单元排序后的补齐码传输至存储单元保存。
进一步地、所述补齐码比较单元中比较补齐码间的大小遵循的规则包括:
规则一、按高位优先进行比较,先比较高位字符,后比较低位字符;
规则二、设置所述预定字符的大小小于0。
综上所述,本发明所提供的一种电话号码压缩存储及解压缩方法及存储系统,移动终端中电话号码的压缩步骤包括:A. 将存储在移动终端中的所有电话号码转变为补齐码后由小到大进行排序,排序后将所有补齐码编号;B. 记录序号为1的电话号码,在对其余电话号码进行压缩时,比较其补齐码与序号前一位的补齐码,从高位开始逐个进行比较,直到比较到两个补齐码有不同字符为止,只保留该不同字符及之后的所有字符,得到各电话号码的压缩码;C. 存储所述各电话号码的压缩码。采用本发明可使电话号码压缩存储,解决存储器容量较小的移动终端存储手机号码占用较多空间的问题,提高存储器的利用率。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。