2023-09-07 Android截取中文表情处理

总所周知,我们在做字符串截取的时候,可以通过

String.subString(index, len)

但是如果string中包含字母、数字、中文、表情,那么通过上述方式就会出现截取到半个表情,这在ios解析会导致解析失败,因为我们可能需要截取完成的一个字符。

Strig.codePointCount(startIndex, endIndex) 

提供了获取字符串完整字符的长度,字母、数字、中文、表情都算一个,比如

helloWorld = 9
你好=2
😔😓 = 2
222 = 3

所以截取的时候可以用另外一种方式去截取完整字符

String.offsetByCodePoints(startIndex, codePointOffset)

其中offset表示多少字符。

例子

  String subContent = content.substring(pushContent.offsetByCodePoints(0, 0), pushContent.offsetByCodePoints(0,  subLength))  + "...";

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容