中文 转gbk编码_go查找中文首字母

edbdf514abc45789adb34b45b6d7b960.png

前言

常见的通讯录都是按首字母来排序的,想象一下你要实现一个首字母排序的功能,若是全英文,那将会是一件很轻松的事情,一般语言层面就会提供排序方法,亦或自己实现也不是难事,那如果存在中文呢?这个时候你就要获取中文第一个文字的拼音首字母了,今天聚焦一下如果获取中文的首字母。

技术要点

技术要点主要在找到中文和首字母的映射关系,正好GB 2312编码对所收汉字进行了“分区”处理,16-55区为一级汉字,按拼音排序,因此使用GB 2312编码可以满足我们的基本需求。

方案

获取中文字符串的第一个字符

将第一个字符编码转为GBK编码(GBK编码是对GB2312编码的扩展,完全兼容GB2312-80标准)

获取第一个字符的16进制

将第一个字符的16进制转十进制

判断第一个字符十进制落在GB 2312的某个字母区间即为某个字母

具体DEMO实现

// 获取中文字符串第一个首字母

上述完整demo可以戳这里:demo

总结

主要难点在于GB 2312编码的结构,不懂的小伙伴可以去了解一下GB 2312编码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507671.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言printf的%f语句,在C语言里printf是什么意思怎么

在C语言里printf是什么意思?怎么用??1,printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。2,printf()函数的调用格式为: printf("", )。3,格式输出,它是c语言中产生格式化输出的函…

语音增强相关技术综述

1 非监督语音增强技术 2 监督语音增强技术 3 github上提供的源代码及分析 3.1 Dual-signal Transformation LSTM Network 简介 https://github.com/breizhn/DTLN 用于实时噪声抑制的堆叠双信号变换 LSTM 网络 (DTLN) 的 Tensorflow 2.x 实现。这个存储库提供了在 python …

睡眠音频分割及识别问题(十二)--基于IOS的YAMNet音频识别(总结)

1 结构体 此部分定义了两个结构体用于存储音频信息: AudioFragment:用于存储单个音频片段(0.975s, 16000Hz)的标签评分信息;AudioInfo:用于存储整个音频信息,包含音频文件名、时间等基础信息&…

js 字符串替换_正则精要:玩转JS正则表达式,也许只需这一篇(建议收藏)

0.导引在正文开始前,先说说正则表达式是什么,为什么要用正则表达式?正则表达式在我个人看来就是一个程序可以识别的规则,有了这个规则,程序就可以帮我们判断某些字符是否符合我们的要求。但是,我们为什么要…

小米平板android最新版本,想要翻身还需努力 小米平板2安卓版评测

1依旧发烧?小米平板2评测如今的平板市场虽不能用日薄西山来形容,但各大厂商费尽心机惨淡经营也无力阻止平板电脑市场的衰落,iPad Air和Mini系列的销量下滑迫使苹果不得不用寄希望于iPad Pro打开一片新天地,而在手机行业风生水起了…

android 滑动过程 触发,android 代码实现模拟用户点击、滑动等操作

/*** 模拟用户点击** param view 要触发操作的view* param x 相对于要操作view的左上角x轴偏移量* param y 相对于要操作view的左上角y轴偏移量*/private static void analogUserClick(View view, float x, float y) {if (view null) {return;}LogUtil.e(TAG_POINT, "正在…

国内计算机类APP相关竞赛总结

中国高校计算机大赛–移动应用创新赛 http://www.appcontest.net/ 中国高校计算机大赛—移动应用创新赛”旨在促进高校计算机课程教学内容和教学方法改革,激发学生创新意识,提升学生利用计算机分析问题、解决问题的能力,特别是移动应用的设计…

flink 写kafka_flink消费kafka的offset与checkpoint

生产环境有个作业,逻辑很简单,读取kafka的数据,然后使用hive catalog,实时写入hbase,hive,redis。使用的flink版本为1.11.1。为了防止写入hive的文件数量过多,我设置了checkpoint为30分钟。env.…

论文阅读:超高分辨率图像中快速、准确的条码检测

摘要 由于目标对象的尺度不同,超高分辨率 (UHR) 图像中的对象检测长期以来一直是计算机视觉中的一个具有挑战性的问题。在条码检测方面,将 UHR 输入图像调整为更小的尺寸通常会导致相关信息的丢失,而直接处理它们的效率很高且计算成本很高。…

android 多线程 场景,精选Android初中级面试题 (三): 深探Handler,多线程,Bitmap

码个蛋(codeegg) 第 930 次推文作者:Focusing链接:https://juejin.im/post/5c85cead5188257c6703af47Handler1、谈谈消息机制Handler作用 ?有哪些要素 ?流程是怎样的 ?参考回答:负责跨线程通信,…

python计算bmi的编程_Python学习-计算BMI的小程序

示例:小明身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数:低于18.5:过轻18.5-25:正常25-28:过重28-32:肥胖高于32:严重肥…

通过超分辨率重构来提高二维码的对比度

1 问题描述 (1)图像分辨率小。例如一些嵌入在海报(如图1)或远距离拍摄的码,其分辨率远小于通常情况下的码图像。 图1.海报中的二维码占比很小 (2)图像质量较低。有很多是经过了多次的压缩和转…

android web 访问数据库,Web下的JDBC访问数据库的基本步骤

Web下的JDBC访问数据库的基本步骤(2012-06-02 12:09:33)在Java程序中连接数据库的一般步骤分为一下几部分,我摘录出来,跟大家分享。(1)将数据库的JABC驱动加载到classpath中,在基于JavaEE的Web应用开发过程中,通常把JDBC驱动放在W…

linux 磁盘扩容_记录一次ESXi Linux在线扩容,不重启系统

因为工作需要,需要将运行在ESXi主机上面的一台Centos 里面的一个LV卷进行扩容,下面记录了此次扩展的详细过程,整个过程,不需要重启服务器。1. 首先通过df-h 查看当前磁盘结构如下:我们此次的最终目标,就是将…

我目前的主要研究方向

推荐系统 https://blog.csdn.net/search_129_hr/article/details/118680185 游戏难度动态调整 https://blog.csdn.net/search_129_hr/article/details/119204173 睡眠声音识别与增强 https://blog.csdn.net/search_129_hr/article/details/118568452 二维码图像识别与增强…

linux的任务计划6,Linux计划任务

Linux计划任务:未来的某个时间执行一次任务,或者周期性执行某个任务,执行结果会通过邮件通知定时任务:at batch周期性任务:crontab系统任务调度:/ect/crontab用户任务调度:/var/spool/cronmail​…

aws python lambda_python – AWS Lambda发送HTTP请求

这可能是一个简单回答的问题,但我似乎无法弄明白.背景:我有一个python Lambda函数来获取数据库中的更改,然后使用HTTP将json中的更改发布到URL.我正在使用urllib2这样:# this runs inside a loop, in reality my error handling is much betterrequest …

标签分布学习相关研究

1 标记增强及标签分布学习 https://mp.weixin.qq.com/s/cXiR-UeJkcdkljJvE2eERw http://palm.seu.edu.cn/xgeng/files/sc-info18.pdf https://baijiahao.baidu.com/s?id1687693358774525583&wfrspider&forpc https://blog.csdn.net/weixin_42001089/article/details/…

android item三种,Android RecyclerView中的ItemDecoration的几种绘制方法

如题,我们使用recyclerview的时候,如果没有设置显示条目的margin,或者padding的话,是没有分割线效果的。那么除去使用margin或padding,其余的方法是用itemdecoration绘制分割线我们绘制分割线的时候通常会使用drawable去绘制&…

上传文件和提交textfield_0基础掌握Django框架(37)文件上传

为了更好的学习效果,请搭配视频教程一起学习:Django零基础到项目实战 - 网易云课堂​study.163.com文件上传:文件上传是网站开发中非常常见的功能。这里详细讲述如何在Django中实现文件的上传功能。前端HTML代码实现:在前端中&…