我们现在有个列表

btaD3WDj0soS.png


想让他按照汉语拼音顺序排序,如果直接使用内置块排序如下:

X43hCujyrMx8.png

返回结果是:["陈八", "赵六", "田七", "王五", "李四", "张三"]

这个并不是我们想要的结果。


准备工作


想让列表按照拼音排序,首先要把汉字转成拼音,最简单的方法就是查字典。

pinyins.zip

下载上面的字典文件,解压缩后改名为pinyins.json,上传到项目的素材库。


在项目中放入一个按钮、一个标签、一个文件管理器、一个HTTP客户端




逻辑设计


将字典导入项目

bQaFacgKP5TQ.png


DqpGwUn1tiBU.png


mRH6c2gts6er.png


字典文件可以在电脑上用记事本打开查看内容,是个这样的JSON格式的文本:

KYjq9CinGLle.png


使用解码JSON文本,可以将他转换为键值对列表。

如果你使用的是wxbit服务器,请使用字典里面的JSON转字典


### 查字典将汉字转为拼音

1KuguC0YTpBD.png


查看字典文件内容可以发现,有些字是多音字,这里为了简便,我们只取第一个读音。


将一个字串(多个汉字或者字母数字)转为拼音

D9edU0lUaHEd.png


c6TjeAV3Xu8d.png


依次读取字串中的每个字符,如果是数字或者字母就原样输出,否则就转为拼音。


自定义排序方式


使用wxibt最新的`排序列表` 自定义排序方式

IPimdf4rLCn1.png


现在可以按照拼音排序了

对学生列表使用刚才的自定义函数进行排序,

输出为 ["陈八", "李四", "田七", "王五", "赵六", "张三"],正是我们想要的。


但是这样排序效率有点低(主要是因为频繁查字典),不要用它排序很长的列表。


标签: 教程, 列表

添加新评论