CN102479206A - 按姓氏列表查找电话簿联系人的方法及电话簿存储装置 - Google Patents
按姓氏列表查找电话簿联系人的方法及电话簿存储装置 Download PDFInfo
- Publication number
- CN102479206A CN102479206A CN201010563659XA CN201010563659A CN102479206A CN 102479206 A CN102479206 A CN 102479206A CN 201010563659X A CN201010563659X A CN 201010563659XA CN 201010563659 A CN201010563659 A CN 201010563659A CN 102479206 A CN102479206 A CN 102479206A
- Authority
- CN
- China
- Prior art keywords
- surname
- hash table
- key word
- initial
- tabulation
- 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
Images
Landscapes
- Document Processing Apparatus (AREA)
Abstract
本发明涉及一种按姓氏列表查找电话簿联系人的方法及电话簿存储装置,属于信息显示领域。本发明的方法包括:步骤1:从联系人姓名的姓氏和名字被分开存放的电话薄存储模块中获取所有联系人姓氏;步骤2:提取所述联系人姓氏的首字母;步骤3:将所述姓氏的首字母与哈希表关键字选择阈比较,如果匹配,将该姓氏添加为该关键字的关键字码值;步骤4:重复步骤2和3直到将全部联系人姓氏添加到哈希表中,生成哈希表;步骤5:以姓氏列表的形式显示生成的哈希表,该姓氏列表包括关键字和关键字码值;步骤6:根据用户选择的哈希表中的联系人的姓氏查找该姓氏对应的联系人的相关记录。根据本发明的方法用户不用输入任何字符,只需要在进入姓氏列表界面后选择候选姓氏列表中的姓氏就能快速的查找到联系人记录。
Description
技术领域
本发明涉及信息显示领域,更具体地,本发明涉及一种在电子设备的电话簿中按姓氏列表查找电话簿联系人的方法。
背景技术
电话簿是例如手机等通信设备的基本功能,每天都会被用户频繁的使用。其作为存储联系人数据的存储器,如何准确、高效的查找到目标联系人记录,是提升用户体验的关键。
现今绝大部分电话簿所采取的查找方式是按照姓名查找,也就是需要输入所要查找的联系人姓名中的关键字,才能找到该联系人和该联系人的信息。也有一些电话簿查找方式更人性化,只需要输入姓名的首字母就可以找出相近的联系人。但上述这些查找方式,都依赖于用户的输入。一般来说,输入是一个比较繁琐的过程,如果用户再记错或者输入错误的话,就会费时费力而查不到所需的联系人。因此,需要一种快速正确找到电话簿中联系人的方法。
发明内容
本发明的目的在于提供一种不需要用户输入关键字或首字母,就能方便的查找到正确的联系人的方法。
本发明提供一种按姓氏列表查找电话簿联系人的方法,在开始查询联系人之后,该方法包括:
步骤1:从联系人姓名的姓氏和名字被分开存放的电话薄存储模块中获取所有联系人姓氏;
步骤2:提取所述联系人姓氏的首字母;
步骤3:将所述姓氏的首字母与哈希表关键字选择阈比较,如果匹配,将该姓氏添加为该关键字的关键字码值;
步骤4:重复步骤2和3直到将全部联系人姓氏添加到哈希表中,生成哈希表;
步骤5:以姓氏列表的形式显示生成的哈希表,该姓氏列表包括关键字和关键字码值;
步骤6:根据用户选择的哈希表中的联系人的姓氏查找该姓氏对应的联系人的相关记录。
优选地,哈希表关键字取值范围包括26个英文字母和至少一个符号,哈希表关键字码值是包括与该关键字匹配的姓氏的数组。
优选地,如果所提取的姓氏是中文,所述姓氏的首字母是该姓氏拼音的首字母,如果所提取的姓氏是西文,所述姓氏首字母是该姓氏的第一个字符。
优选地,如果姓氏的首字母不是26个英文字母,则将该姓氏添加到以所述符号为关键字的关键字码值数组中。
优选地,以姓氏列表的形式显示生成的哈希表包括将关键字按字母顺序显示在姓氏列表首列,将关键字码值按顺序排列在其关键字所对应的行中。
优选地,电话薄存储模块以数据库存储方式或文件存储方式保存联系人信息。
优选地,如果在哈希表的关键字码值数组中已存在即将添加的姓氏,不添加该姓氏。
本发明提供一种电话薄存储装置,该电话簿存储装置包括:
存储模块,用于存储联系人信息,其中联系人姓名中的姓氏和名字被分开存储;
数据处理模块,用于产生哈希表并根据用户选择的姓氏查找联系人,该数据处理模块包括:
提取模块,用于在用户进入姓氏列表界面时从存储模块获得所有联系人姓氏,并提取联系人姓氏的首字母,
哈希表生成模块,将所述姓氏的首字母与哈希表关键字比较,如果匹配,将该姓氏添加为该关键字的关键字码值,和
查找模块,以用户选择的姓氏作为条件查找联系人;以及
显示模块,用于以姓氏列表的形式显示生成的哈希表,并显示查找的结果。
本发明一种在通信设备上按姓氏列表查找电话簿联系人的方法,其优点在于:
1、根据本发明的方法可以使用户不用输入任何字符,只需要在进入姓氏列表界面后选择候选姓氏列表中的姓氏就能快速的查找到联系人记录,极大的方便了用户的使用。根据本发明的方法只会在姓氏列表中显示电话簿中已有联系人的姓氏,不会出现找不到匹配联系人记录的情况。
2、本发明的方法通过哈希表的形式,将姓氏首字母和姓氏组合起来,能够方便高效的用列表形式显示电话簿中联系人的姓氏。列表每一行的内容通过关键字(key)组合关键字码值(value)的形式呈现,用户一目了然。
附图说明
图1示意性地示出根据本发明实施例的电话簿的结构图。
图2示出根据本发明的在电话簿中查找联系人的方法的流程图。
图3示出根据本发明的形成姓氏列表的方法的流程图。
图4示出根据本发明的姓氏列表显示示意图。
具体实施方式
下面将结合附图对本发明作进一步的详细描述。
图1示意性地示出根据本发明实施例的电话簿的结构图。图1中的电话簿100包括存储模块101,数据处理模块102和显示模块103。存储模块存储所有联系人记录,包括联系人的姓氏,名字,以及和联系人有关的各种信息,例如电话号码,地址,电子邮箱等。存储模块的存储方式可以为数据库存储方式或者文件存储方式。但无论哪种方式,联系人姓名的姓氏和名字分开地存储在存储模块中。数据处理模块102用于产生并输出哈希(hash)表并根据用户选择的姓氏查找联系人并输出查找结果。数据处理模块102包括:提取模块,用于在用户进入姓氏列表界面时从存储模块获得所有联系人姓氏并提取联系人姓氏的首字母;哈希表生成模块,将该姓氏首字母与哈希表关键字比较,如果匹配,将该姓氏添加为该关键字的关键字码值,和查找模块,以用户选择的姓氏作为查找条件查找联系人。显示模块103用于以姓氏列表的形式显示数据处理模块生成的哈希表以及查找结果。
如果存储模块是数据库存储方式,数据库例如可以如下设计:
Id | Family name | First name |
1 | 张 | 三 |
2 | 李 | 四 |
如果存储模块是文件存储方式,例如可以设计如下数据结构存储联系人记录:
typedef struct Name{
char familyname[40];
char firstname[40];
}contactname;
图2示出根据本发明的在电话簿中按姓氏列表查找联系人的方法的流程图。
在根据本发明的电话簿存储模块中,联系人记录中姓名的姓氏和名字被分开存放。该存储模块包括数据库或者文件。
首先,从联系人姓名的姓氏和名字被分开存放的电话薄存储模块中获取所有联系人姓氏,步骤201。提取所述联系人姓氏的首字母,步骤202。如果所提取的姓氏是中文,该首字母是诸如姓氏拼音的首字母;如果所提取的姓氏是非中文,所述姓氏首字母是该姓氏的第一个字符。随后,将所述姓氏的首字母与哈希表关键字选择阈比较,如果匹配,将该姓氏添加为该关键字的关键字码值,步骤203。该哈希表的关键字为例如姓氏的首字母,哈希表的关键字码值为例如具有该首字母的姓氏。重复步骤202和203直到将全部联系人姓氏添加到哈希表中,生成哈希表:hash<key,value>,步骤204。
哈希表key选择阈,即取值范围例如为“A-Z”的26个英文字母,不区分大小写,以及符号例如“?”。value为一个数组,保存与key匹配的姓氏。符号“?”表示为A-Z之外的取值空间。最终生成的hash表如下所示:
<C,{程}>
<L,{刘,梁}>
……
<Z,{臧,张,郑>
<?,{,&}>
所述哈希表的key的取值范围优选至少包括“A-Z”的26个英文字母以及一个符号,例如“?”,在此基础上可以根据具体需要扩大取值范围。
以姓氏列表的形式显示生成的哈希表,该姓氏列表包括关键字和关键字码值,步骤205。姓氏列表每一行最前端显示key值,后面跟随显示value中的所有姓氏。
用户从显示的姓氏列表中选择的需要的姓氏,数据处理模块根据该选择的姓氏作为查找条件查找电话簿所有联系人姓氏与之完全匹配的联系人,并将查找结果输出至显示模块。然后,根据用户选择的哈希表中的联系人的姓氏查找该姓氏对应的联系人的相关记录,步骤206。在选择希望查找的联系人后,用户最终找到想要查找的联系人记录。
从存储模块中取出所有联系人姓氏,到生成哈希表,数据处理模块需要完成以下步骤,例如,如图3所示:
步骤301:从存储模块中取出所有联系人姓氏,作为后面两个步骤的数据源。
步骤302:从数据源中取出一条联系人的姓氏,如果该姓氏是汉字,则将汉字转换为拼音,并将拼音的首字母提取出来,如果姓氏是非中文,则将姓氏的第一个字符提取出来。例如,如果姓氏为“张”,则提取的首字母为“Z”。如果姓氏为“Jordan”,增提取的首字母为“J”。对于中文复姓,提取复姓中所有汉字的首字母,例如,复姓“欧阳”,则提取的首字母为“OY”。
步骤303:提取出来的首字母会与哈希表的key进行比较,如果首字母是A-Z之间的某一个,则将该首字母所对应的姓氏放入哈希表中与key一致的value中。如果首字母在区间A-Z之外,则将该首字母所对应的姓氏放入哈希表中key为“?”的value中。此外重要的是,哈希表中不保存重复的姓氏。例如,将姓氏“张”转换为“zhang”并提取首字母“Z”,最后将“张”放入哈希表中key为“Z”的value中,结果为hash<Z,张>。
步骤304:循环步骤302和步骤303,直到所有联系人姓氏都被存入哈希表。
所述哈希表中不保存重复的姓氏,是指电话簿中有几个姓氏相同的记录时,一个姓氏在哈希表中只保存一次,哈希表里不要有冗余的姓氏。
步骤305:显示模块在获得哈希表后,将该哈希表以列表的形式显示在屏幕上,作为姓氏列表。显示方式为如图4所示,每行的最左边显示哈希表的key值,其右侧显示与该key值所对应的value,即候选姓氏。如果候选姓氏在列表上排列起来多于一行,则将多余的姓氏另起一行显示。依次类推,可以多行显示首字母相同的姓氏。
应当理解,以上借助本发明的优选实施例本发明的技术方案进行了详细说明,应当理解,以上说明是示意性的而非限制性的。本领域的普通技术人员在阅读本发明说明书的基础上可以对各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。本发明的保护范围仅由随附权利要求书限定。
Claims (8)
1.一种按姓氏列表查找电话簿联系人的方法,其特征在于,包括:
步骤1:从联系人姓名的姓氏和名字被分开存放的电话薄存储模块中获取所有联系人姓氏;
步骤2:提取所述联系人姓氏的首字母;
步骤3:将所述姓氏的首字母与哈希表关键字选择阈比较,如果匹配,将该姓氏添加为该关键字的关键字码值;
步骤4:重复步骤2和3直到将全部联系人姓氏添加到哈希表中,生成哈希表;
步骤5:以姓氏列表的形式显示生成的哈希表,该姓氏列表包括关键字和关键字码值;
步骤6:根据用户选择的哈希表中的联系人的姓氏查找该姓氏对应的联系人的相关记录。
2.根据权利要求1所述的按姓氏列表查找电话簿联系人的方法,其特征在于,哈希表关键字取值范围包括26个英文字母和至少一个符号,哈希表关键字码值是包括与该关键字匹配的姓氏的数组。
3.根据权利要求1所述的按姓氏列表查找电话簿联系人的方法,其特征在于,如果所提取的姓氏是中文,所述姓氏的首字母是该姓氏拼音的首字母,如果所提取的姓氏是西文,所述姓氏首字母是该姓氏的第一个字符。
4.根据权利要求2所述的按姓氏列表查找电话簿联系人的方法,其特征在于,如果姓氏的首字母不是26个英文字母,则将该姓氏添加到以所述符号为关键字的关键字码值数组中。
5.根据权利要求1所述的按姓氏列表查找电话簿联系人的方法,其特征在于,以姓氏列表的形式显示生成的哈希表包括将关键字按字母顺序显示在姓氏列表首列,将关键字码值按顺序排列在其关键字所对应的行中。
6.根据权利要求1所述的按姓氏列表查找电话簿联系人的方法,其特征在于,电话薄存储模块以数据库存储方式或文件存储方式保存联系人信息。
7.根据权利要求5所述的按姓氏列表查找电话簿联系人的方法,其特征在于,如果在哈希表的关键字码值数组中已存在即将添加的姓氏,不添加该姓氏。
8.一种电话薄存储装置,包括存储模块,数据处理模块和显示模块,其特征在于,
存储模块,用于存储联系人信息,其中联系人姓名中的姓氏和名字被分开存储;
数据处理模块,用于产生哈希表并根据用户选择的姓氏查找联系人,该数据处理模块包括:
提取模块,用于在用户进入姓氏列表界面时从存储模块获得所有联系人姓氏,并提取联系人姓氏的首字母,
哈希表生成模块,将所述姓氏的首字母与哈希表关键字比较,如果匹配,将该姓氏添加为该关键字的关键字码值,和
查找模块,以用户选择的姓氏作为条件查找联系人;以及
显示模块,用于以姓氏列表的形式显示生成的哈希表,并显示查找的结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010563659XA CN102479206A (zh) | 2010-11-23 | 2010-11-23 | 按姓氏列表查找电话簿联系人的方法及电话簿存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010563659XA CN102479206A (zh) | 2010-11-23 | 2010-11-23 | 按姓氏列表查找电话簿联系人的方法及电话簿存储装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102479206A true CN102479206A (zh) | 2012-05-30 |
Family
ID=46091854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010563659XA Pending CN102479206A (zh) | 2010-11-23 | 2010-11-23 | 按姓氏列表查找电话簿联系人的方法及电话簿存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102479206A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103823903A (zh) * | 2014-03-18 | 2014-05-28 | 联想(北京)有限公司 | 数据处理方法及装置 |
CN106210251A (zh) * | 2015-06-01 | 2016-12-07 | 北京壹人壹本信息科技有限公司 | 一种联系人快速定位方法、系统及通信终端 |
WO2017063451A1 (zh) * | 2015-10-14 | 2017-04-20 | 深圳市金立通信设备有限公司 | 一种联系人的显示方法及终端 |
CN104050048B (zh) * | 2013-03-15 | 2017-09-15 | 腾讯科技(深圳)有限公司 | 冗余联系人记录清理方法和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1988564A (zh) * | 2006-11-15 | 2007-06-27 | 康佳集团股份有限公司 | 一种利用姓氏分类查找通信录的方法 |
CN101075231A (zh) * | 2006-05-17 | 2007-11-21 | 北京恒基伟业投资发展有限公司 | 手机名片索引方法 |
CN101127798A (zh) * | 2007-09-14 | 2008-02-20 | 深圳华为通信技术有限公司 | 电话簿的排序和搜索方法及装置以及移动终端 |
CN101426046A (zh) * | 2007-10-30 | 2009-05-06 | 希姆通信息技术(上海)有限公司 | 在手机上按百家姓查找电话簿的方法 |
CN101645094A (zh) * | 2009-09-04 | 2010-02-10 | 深圳华为通信技术有限公司 | 实现中文搜索的方法及装置 |
-
2010
- 2010-11-23 CN CN201010563659XA patent/CN102479206A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101075231A (zh) * | 2006-05-17 | 2007-11-21 | 北京恒基伟业投资发展有限公司 | 手机名片索引方法 |
CN1988564A (zh) * | 2006-11-15 | 2007-06-27 | 康佳集团股份有限公司 | 一种利用姓氏分类查找通信录的方法 |
CN101127798A (zh) * | 2007-09-14 | 2008-02-20 | 深圳华为通信技术有限公司 | 电话簿的排序和搜索方法及装置以及移动终端 |
CN101426046A (zh) * | 2007-10-30 | 2009-05-06 | 希姆通信息技术(上海)有限公司 | 在手机上按百家姓查找电话簿的方法 |
CN101645094A (zh) * | 2009-09-04 | 2010-02-10 | 深圳华为通信技术有限公司 | 实现中文搜索的方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104050048B (zh) * | 2013-03-15 | 2017-09-15 | 腾讯科技(深圳)有限公司 | 冗余联系人记录清理方法和系统 |
CN103823903A (zh) * | 2014-03-18 | 2014-05-28 | 联想(北京)有限公司 | 数据处理方法及装置 |
CN103823903B (zh) * | 2014-03-18 | 2017-04-19 | 联想(北京)有限公司 | 数据处理方法及装置 |
CN106210251A (zh) * | 2015-06-01 | 2016-12-07 | 北京壹人壹本信息科技有限公司 | 一种联系人快速定位方法、系统及通信终端 |
WO2017063451A1 (zh) * | 2015-10-14 | 2017-04-20 | 深圳市金立通信设备有限公司 | 一种联系人的显示方法及终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9760542B1 (en) | Providing context-sensitive writing assistance | |
CN102521734B (zh) | 在基于对话的电子邮件系统中显示扩展的消息 | |
CN100592284C (zh) | 信息检索和显示方法以及计算机可读介质 | |
US9183192B1 (en) | Translator | |
CN103294776A (zh) | 一种智能手机通讯录模糊搜索的方法 | |
CN102884518A (zh) | 尤其用于小键盘装置的使用互联网语料库的自动的上下文相关的语言校正 | |
CN100454305C (zh) | 文档管理方法和装置以及文档搜索方法和装置 | |
CN105490915A (zh) | 用于填写电子消息的地址字段的方法、设备和软件产品 | |
CN101794307A (zh) | 基于互联网分词思想的车载导航poi搜索引擎 | |
US20190303384A1 (en) | Method and system for consolidating data retrieved from different sources | |
CN103838876B (zh) | 使用拼音检索文件的文件检索方法及系统 | |
CN105378730A (zh) | 社交媒体分析与输出 | |
CN102110123A (zh) | 倒排索引建立方法 | |
CN101346737A (zh) | 移动装置和用于从移动装置发送消息的方法 | |
WO2012079254A1 (zh) | 节目推荐装置和节目推荐方法 | |
US7302427B2 (en) | Text mining server and program | |
CN101631398A (zh) | 一种移动终端电子书管理系统和方法 | |
CN102479206A (zh) | 按姓氏列表查找电话簿联系人的方法及电话簿存储装置 | |
CN112860642A (zh) | 一种庭审数据处理方法、服务器及终端 | |
Carmel et al. | The demographics of mail search and their application to query suggestion | |
US9607031B2 (en) | Social data filtering system, method and non-transitory computer readable storage medium of the same | |
CN101426046A (zh) | 在手机上按百家姓查找电话簿的方法 | |
CN101576877A (zh) | 一种快速分词的实现方法 | |
CN111158497A (zh) | 一种输入法的常用词词库识别方法 | |
WO2007069175A2 (en) | Method and apparatus for manipulating data files |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120530 |