java - 我一个很长的字符串里面有中英文字符,要分成若干个最多长度为20个字节的字符串,怎么实现啊
大家讲道理
大家讲道理 2017-04-17 15:21:35
[Java讨论组]

如题 大家帮帮忙

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(2)
大家讲道理

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 还有非标准形式,可以两个字符合成一个字符,不过都是处理一些西欧字符的,楼主不存在这种情况。

大家讲道理

可以使用正则表达式,/构造函数的方式
var reg = new RegExp('');
g:表示匹配所有
i:不区分大小写

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号