首页 > 我一个很长的字符串里面有中英文字符,要分成若干个最多长度为20个字节的字符串,怎么实现啊

我一个很长的字符串里面有中英文字符,要分成若干个最多长度为20个字节的字符串,怎么实现啊

如题 大家帮帮忙


java 的字符编码本来就是占用两个字节的 unicode 对于大部分中文字符都是占两个字节。没有生僻字的话,不用考虑变长编码的问题,每10个分一组就可以了。
中文字符编码范围,如下,如果使用的字符里面没有四个字符的就简单的使用上面的方法就可以了。http://www.qqxiuzi.cn/zh/hanzi-unicode-bianma.php

后来Unicode 里面出现了超过两个字符的编码,就有一种 UTF-16 编码的方式。这种方式是一个字符占用2 或 4个字节,同时兼容以前两个字节的 unicode。 每两个字节叫做一个码元码点就是一个字符,由1-2个码元组成。
所以 Java 就只能采用这种编码方式,以前的一些函数处理的就是码元。为了处理码点,添加了一些codePoint的函数。对于两个码元组成一个码点的情况,第一个码元的范围是0xD800-0xDBFF。就是说第一个码元在这个范围内的,就是两个码元组成一个码字的情况。这个时候分组就比较麻烦了。你就只能在保存第10个字符的时候,读取下一个字符判断是不是需要另起一个新的字符串了。

P.S. 其实 unicode 还有非标准形式,可以两个字符合成一个字符,不过都是处理一些西欧字符的,楼主不存在这种情况。

【热门文章】
【热门文章】