打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
STM32学习笔记----T9拼音输入法

拼音输入法简介

在计算机上汉字的输入法有很多种,比如拼音输入法、五笔输入法、笔画输入法、区位输入法等。其中,又以拼音输入法用的最多。拼音输入法又可以分为很多类,比如全拼输入、双拼输入等。而在手机上,用的最多的应该算是T9拼音输入法了,T9输入法全名为智能输入法,字库容量九千多字,支持十多种语言。T9输入法是由美国特捷通讯(Tegic Communications)软件公司开发的,该输入法解决了小型掌上设备的文字输入问题,已经成为全球手机文字输入的标准之一。
一般,手机拼音输入键盘如图所示:


在这个键盘上,我们对比下传统的输入法和T9输入法,输入“中国”两个字需要的按键次数。传统的方法,先按4次9,输入字母z,再按2次4,输入字母h,再按3次6,输入字母o,再按2次6,输入字母n,最后按1次4,输入字母g。这样,输入“中”字,要按键12次,接着同样的方法,输入“国”字,需要按6次,总共就是18次按键。

如果是T9,我们输入“中”字,只需要输入:9、4、6、6、4,即可实现输入“中”字,在选择中字之后,T9会联想出一系列同中字组合的次,如文、国、断、山等。这样输入“国”字,我们直接选择即可,所以输入“国”字按键0次,这样T9总共只需要5次按键。

这就是T9智能输入法的优越之处。正因为T9输入法高效便捷的输入方式得到了众多手机厂商的采用,以至于T9成为了使用频率最高知名度最大的手机输入法。

输入法原理

主要通过一个和数字串对应的拼音索引表来实现T9拼音输入,先将汉语拼音所有可能的组合全部列出来,如下所示:

const u8 PY_mb_space []={""};const u8 PY_mb_a     []={"啊阿腌吖锕厑嗄錒呵腌"};const u8 PY_mb_ai    []={"爱埃挨哎唉哀皑癌蔼矮艾碍隘捱嗳嗌嫒瑷暧砹锿霭"};const u8 PY_mb_an    []={"安俺按暗岸案鞍氨谙胺埯揞犴庵桉铵鹌黯"};……此处省略N多组合const u8 PY_mb_zu    []={"足租祖诅阻组卒族俎菹镞"};const u8 PY_mb_zuan  []={"钻攥纂缵躜"};const u8 PY_mb_zui   []={"最罪嘴醉蕞觜"};const u8 PY_mb_zun   []={"尊遵樽鳟撙"};const u8 PY_mb_zuo   []={"左佐做作坐座昨撮唑柞阼琢嘬怍胙祚砟酢"};

这里我们只列出了部分组合,我们将这些组合称之为码表,然后将这些码表和其对应的数字串对应起来,组成一个拼音索引表,如下所示:

const py_index py_index3[]={{"" ,"",(u8*)PY_mb_space},{"2","a",(u8*)PY_mb_a},{"3","e",(u8*)PY_mb_e},{"6","o",(u8*)PY_mb_o},{"24","ai",(u8*)PY_mb_ai},{"26","an",(u8*)PY_mb_an},……此处省略N多组合{"94664","zhong",(u8*)PY_mb_zhong},{"94824","zhuai",(u8*)PY_mb_zhuai},{"94826","zhuan",(u8*)PY_mb_zhuan},{"248264","chuang",(u8*)PY_mb_chuang},{"748264","shuang",(u8*)PY_mb_shuang},{"948264","zhuang",(u8*)PY_mb_zhuang},}//其中py_index是一个结构体,定义如下:typedef struct{  u8 *py_input;     //输入的字符串  u8 *py;            //对应的拼音  u8 *pymb;       //码表}py_index;

其中py_input,即与拼音对应的数字串,比如“94824”。py,即与py_input数字串对应的拼音,如果py_input=“94824”,那么py就是“zhuai”。最后pymb,就是我们前面说到的码表。注意,一个数字串可以对应多个拼音,也可以对应多个码表。

在有了这个拼音索引表(py_index3)之后,我们只需要将输入的数字串和py_index3索引表里面所有成员的py_input对比,将所有完全匹配的情况记录下来,用户要输入的汉字就被确定了,然后由用户选择可能的拼音组成(假设有多个匹配的项目),再选择对应的汉字,即完成一次汉字输入。

当然还可能是找遍了索引表,也没有发现一个完全符合要求的成员,那么我们会统计匹配数最多的情况,作为最佳结果,反馈给用户。比如,用户输入“323”,找不到完全匹配的情况,那么我们就将能和“32”匹配的结果返回给用户。这样,用户还是可以得到输入结果,同时还可以知道输入有问题,提示用户需要检查输入是否正确。

完整的T9拼音输入步骤

1) 输入拼音数字串
本章,我们用到的T9拼音输入法的核心思想就是对比用户输入的拼音数字串,所以必须先由用户输入拼音数字串。

2) 在拼音索引表里面查找和输入字符串匹配的项,并记录
在得到用户输入的拼音数字串之后,在拼音索引表里面查找所有匹配的项目,如果有完全匹配的项目,就全部记录下来,如果没有完全匹配的项目,则记录匹配情况最好的一个项目。

3) 显示匹配清单里面所有可能的汉字,供用户选择.
将匹配项目的拼音和对应的汉字显示出来,供用户选择。如果有多个匹配项(一个数字串对应多个拼音的情况),则用户还可以选择拼音。

4) 用户选择匹配项,并选择对应的汉字.
用户对匹配的拼音和汉字进行选择,选中其真正想输入的拼音和汉字,实现一次拼音输入。

来源:https://www.icode9.com/content-4-461651.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
拼音输入法打字教程
游戏拼音输入法使用注意
“掌易”中文输入平台 安装使用说明 1.06
安卓输入法合集
小学生学习打字教程(一)
用搜狗输入法打出不常用字
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服