如何遍历中文字符串

描述

今天和大家分享下如何遍历中文字符串,主要是如何打印中文字符,因为中文字符串每个字符占用不只一个字节的空间,如果我们逐个字节遍历,会出现奇怪的结果。而UTF-8编码写的中文字符是有特定结构的,我们可以按照它的规则去遍历打印。

下面是详情:

前提:UTF-8编码。

先看下面的代码和运行结果:

字符

上面代码定义了一个9个中文的字符串,但打印size确是27,挨个字符遍历也都是�。

这个本质是因为中文不只占用一个字节的空间,换一种方式遍历:


字符

因为一个中文字符不一定占用几个字节,但它们的长度其实可以从字符的头中读取出来,这点可以查看UTF-8的Wiki介绍:https://en.wikipedia.org/wiki/UTF-8#Description

字符

这里可以看到,通过Byte1的前4位就可以区分出这个字符究竟占用几个字节,所以就有了上述的遍历方式。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分