JAVA中offsetByCodePoints与索引逐一递增的区别
2021/5/4 22:25:14
本文主要是介绍JAVA中offsetByCodePoints与索引逐一递增的区别,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
我们都知道
public int offsetByCodePoints(int index , int codePointOffset)
返回 String 中从 index 处偏移 codePointOffset 个代码点(CodePoint)的索引。
但是无论是英文,还是作为宽字符的中文,代码
String str = "abc哈哈哈"; int idx = 0, idx_off = 0; while(idx < str.length()) { System.out.println(String.valueof(idx_off = str.offsetByCodePoints(ndex , 1))+": "+str.substring(idx, idx_off) ); idx = idx_off; }
与代码
String str = "abc哈哈哈"; int idx = 0, idx_off = 0; while(idx < str.length()) { System.out.println(String.valueof(idx_off = idx + 1)+ ": "+ str.substring(idx, idx_off) ); idx = idx_off; }
没有什么区别,输出均为
1: a 2: b 3: c 4: 哈 5: 哈 6: 哈
变量idx_off
都是以1为步长递增。
这是因为无论是中文还是英文,都是占用一个Unicode16字符,但是对于一些符号,可能需要占用两个。
例如数学符号双线(double-struck)O “
这篇关于JAVA中offsetByCodePoints与索引逐一递增的区别的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26手写消息中间件:从零开始的指南
- 2024-11-26Java语音识别项目资料:新手入门教程
- 2024-11-26JAVA语音识别项目资料:新手入门教程
- 2024-11-26Java语音识别项目资料:入门与实践指南
- 2024-11-26Java云原生资料入门教程
- 2024-11-26Java云原生资料入门教程
- 2024-11-26Java云原生资料:新手入门教程
- 2024-11-25Java创意资料:新手入门的创意学习指南
- 2024-11-25JAVA对接阿里云智能语音服务资料详解:新手入门指南
- 2024-11-25Java对接阿里云智能语音服务资料详解