首页 > 编程语言 >jdk源码之String 中 codePointCount(int beginIndex, int endIndex) 方法作用

jdk源码之String 中 codePointCount(int beginIndex, int endIndex) 方法作用

时间:2022-11-29 11:45:02浏览次数:47  
标签:endIndex string 字符 int 代码 char length 源码 长度


作用: 返回代码点数量。

string代表一个字符串

大多时候 string.length()  和 codePointCount(0,string.length())  返回的结果是一致的。

返回的也是长度。

 

但是!!!

增补字符,即代码点为 U+10000~U+10FFFF 的字符,这是 Unicode 5.0 中新增的代码点字符。

在 Java 中一个 Unicode 字符是使用 UTF-16 编码的 char 进行表示的,也就是一个 char 只能表示 U+0000~U+FFFF 的 Unicode 基本字符(BMP)。因此在 Java 中需要表示 U+10000~U+10FFFF 的字符需要使用 一对代理字符进行表示,高代理字符的范围为 U+D800~U+DBFF,低代理字符的范围为 U+DC00~U+DFFF。比如表示 U+10400 的字符需要两个 char(U+D801, U+DC00)才能表示,这时的代码点长度为 1,而代码单元长度为 2

 

string.length() 返回的是代码单元长度

codePointCount(0,string.length()) 返回的是代码点长度

 

 

标签:endIndex,string,字符,int,代码,char,length,源码,长度
From: https://blog.51cto.com/u_13002884/5894581

相关文章

  • jdk源码中String中的 codePointAt(int index) 方法作用
    jdk源码中String中的codePointAt(intindex)方法作用: 返回字符串中第index位字符的ascii编码 例如:Stringstring="abcdefg";intcodePointAt=sb.codePointAt(0......
  • Function源码解析与实践
    作者:陈昌浩1导读if…else…在代码中经常使用,听说可以通过Java8的Function接口来消灭if…else…!Function接口是什么?如果通过Function接口接口消灭if…else…呢?......
  • pinia源码解读三(创建store)
    定义模块这一步很复杂,用几个流程图来梳理一下createOptionsStore方法createSetupStore方法数据流向最后整理下数据的流向变更,对于写pinia插件很有帮助option写法版......
  • app直播源码,flutter Text自动计算文本内容的宽度
    app直播源码,flutterText自动计算文本内容的宽度一、什么是TextPainter在内容开始之前,我们先来看一下它的属性 TextPainter({  InlineSpan?text,   //Tex......
  • easylogging++的那些事(四)源码分析(二)日志记录宏(四)偶尔日志宏
    目录CLOG_EVERY_N宏宏展开Info日志宏CLOG_EVERY_N(xxx,INFO,xxx)Trace日志宏CLOG_EVERY_N(xxx,TRACE,xxx)Debug日志宏CLOG_EVERY_N(xxx,DEBUG,xxx)Fatal日志......
  • LevelDB源码剖析(3) Skiplist跳表
    1.背景什么是跳表?跳表是SortedMap的一种具体实现,是一种概率性的数据结构。跳表拥有SortedMap的所有功能,定位和红黑树类似,其和红黑树的区别在于优点:跳表的实现更加简单......
  • 深入理解Kubernetes 4A - Audit源码解析
    Overview本文是关于Kubernetes4A解析的第四章深入理解Kubernetes4A-Authentication源码解析深入理解Kubernetes4A-Authorization源码解析深入理解Kubernetes......
  • IntelliJ idea下的项目结构
    IntelliJIDEA的project和module是啥关系?使用基于IntelliJ的IDE,如phpstorm、androidstudio都会对 project 和 module 的关系比较糊涂,简单的概括如下:IntelliJ系......
  • cocos2d-x 是男人就下100层 附源码
    1.效果图:  玩法:一个不断下降的小人,点击屏幕的left或者right控制小人的移动方向,尽可能生存久些. 为什么要搞这个游戏呢?因为在2012年的8月份,我完成它的android版本,......
  • C++学习------cmath头文件的源码学习06
    函数族定义---双曲函数cosh---计算双曲余弦函数sinh---计算双曲正弦函数tanh---计算双曲正切函数acosh---计算双曲余弦面积asinh---计算双曲正弦面积atanh---计算双曲正切面......