code point,code unit

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

从一段API描述谈起: 在String的length的API中描述是这样的!

lengthpublic int length()
Returns the length of this string. The length is equal to the number of 16-bit Unicode characters in the string.Specified by:
length in interface CharSequenceReturns:
the length of the sequence of characters represented by this object.

其中有一句话:

The length is equal to the number of 16-bit Unicode characters in the string.

直译过来就是: length的大小和 16 bit 的Unicode字符的个数相同!

1、为什么是16bit?

Unicode是包括目前世界上几乎所有语言的字符集,每一个字符对应的一个唯一编号,这个编号规则是:常用的Unicode称谓:BMP,包含了大量的字符集,目前Unicode版本是8.0,BMP是U+0000-U+FFFF代表的字符集。当然了后期又扩展了很多。

可以看到BMP在U+0000-U+FFFF之间的字符,每一个字符的Unicode编码对应的是四个16进制,每个16进制用四个bit表示,所以一个Unicode就是16 bit。

所以BMP内的字符都是由16Bit组成,所以有多少个16bit就有多少个字符。

[Unicode BMP](https://en.wikipedia.org/wiki/Plane_(Unicode) Unicode和UTF-8对应关系

2、String API codePoint什么意思?

每一个16bit的Unicode就是一个codePoint

关于code point、code unit的对应关系:

输入图片说明

wikipedia关于code_point

3、code unit是个什么概念?

The code unit size is equivalent to the bit measurement for the particular encoding:

A code unit in US-ASCII consists of 7 bits; A code unit in UTF-8, EBCDIC and GB18030 consists of 8 bits; A code unit in UTF-16 consists of 16 bits; A code unit in UTF-32 consists of 32 bits. 翻译: 在US-ASCII中一个code unit代表7bits 在UTF-8,EBCDIC和GB18080中一个code unit代表8bits 在UTF-16中一个code unit代表16bits 在UTF-32中一个code unit代表32bits

总结:

code point是从unicode上定义的概念,是指一个字符集比如A代表的16bits。也就是字符的个数。

比如:

	String   s = "π王A23";//π用Unicode代表一个16bit的code point//王用Unicode代表一个16bit的code point//A用Unicode代表一个16bit的code point//2用Unicode代表一个16bit的code point//3用Unicode代表一个16bit的code pointSystem.out.println("字符串s的长度为:"+s.length());System.out.println("第三个code point为:"+s.codePointAt(2));

输出:

	字符串s的长度为:5
第三个code point为:65

其中5代表5geunicode字符,每个字符是一个16bit的unicode。 65是代表字母A的标示。是第三个字符A

关于unicode学习最好的方式就是参考Wikipedia中的讲述

转载于:https://my.oschina.net/u/2525142/blog/618823

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/285630.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【土地评价与土地管理】案例:兰州市榆中县农用地分等

文章目录 一、资料收集二、确定标准耕作制度、基准作物、指定作物、光温(气候生产潜力)三、划分指标区,确定分等因素及权重四、编制“指定作物-分等因素-自然质量分”记分规则表五、绘制分等因素分值图,划分分等单元六、计算农用地自然质量分七、计算自然质量等指数八、计算…

业务多变的公司上云后蒸蒸日上

一、云服务器与传统服务器的对比 1)、传统服务器 传统服务器是一个独立的硬件设备,可以理解成是一台放在机房的高配置电脑,可根据需求安装各种操作系统以及配置各种环境,性能也比较强大。 2)、云服务器 云服务器是构建在硬件服务器集群之上,…

2016福州大学软件工程第四次团队作业-系统设计成绩汇总

第四次团队作业——系统设计打分统计结果如下: 学号组别团队分数贡献比例个人分数031401433606notconnected141613.83031402606606notconnected141413.33031402618606notconnected141814.34031402629606notconnected141413.33031402631606notconnected141914.590314…

[转]在C#中像Python一样编写TensorFlow机器学习代码

机器学习是一个令人激动人心的领域,一直有新的技术突破。研究人员不断推动机器智能的提升,教机器如何听说读写——这些曾经是我们人类专属的技能。机器学习的首选语言是Python,最受欢迎的库是Google的TensorFlow。几乎所有的代码示例都是用Py…

【土地评价与土地管理】教案 第一章:土地评价要素的选择

文章目录 1.1 土地构成要素与其农业利用1、光能条件2、热量条件3、降水条件1.1 土地构成要素与其农业利用 1、光能条件  光能是绿色植物进行光合作用和生物运动发展的主要能源  太阳辐射、日照时数  太阳辐射量随地域和季节变化较大,导致了土地利用的多样性和土地资源…

Blazor University (33)表单 —— EditContext、FieldIdentifiers

原文链接:https://blazor-university.com/forms/editcontext-fieldidentifiers-and-fieldstate/EditContext、FieldIdentifiers 和 FieldState请注意,对于那些希望了解 Blazor 如何“在后台”工作的人来说,这是一个高级主题。无需了解此信息即…

团队项目开发篇章8

例会时间:2016.11.3 整理:姬索肇 例会照片 每个人的工作 任务分配 我们今天与王鹿鸣学长和李云涛学长针对团队开发过程中遇到的问题进行了讨论,非常感谢学长们的热心帮助,同时我们也被他们强大的编程能力所折服~ 在这里为学长们点…

【地理信息系统GIS】教案(七章全)第一章:地理信息系统概述

文章目录 第一节 GIS基本概念第二节 GIS的组成第三节 GIS的功能第四节 GIS的发展第一节 GIS基本概念 1.1 GIS基本概念 1、信息 是用文字、数字、符号、语言、图象、图形等介质来表达事件、事物或现象等的内容、数量和特征,从而向人们(或系统)提供关于现实世界新的事实和知…

表达式的动态解析和计算,Flee用起来真香

前言在很多项目中经常会出现需要动态解析表达式和计算的场景,比如一些自动审核规则,或者是一些变量的值通过维护的公式在运行过程中动态算出;由于场景需求,都需要比较灵活的配置对应的表达式,然后希望在需要的时候能根…

C语言九十五之实现经典的反转数组(通过指针或数组下标操作)

✅作者简介:大家好我是码玛莎拉蒂,CSDN博客专家🥇🥇🥇 📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转…

Linux下使用shell实现上传linux下某个目录下所有文件到ftp

首先我们需要搞清楚单个文件怎么上传,把这个单文件上传到ftp上的实现命名为一个:upload_to_ftp_command.sh 之后,需要弄清楚怎么实现遍历一个目录下的所有文件的,把这个遍历某个目录下的文件实现命名为:foeach_directory_and_uplo…

[转]Mysql数据库开发的36条原则

前言 这些原则都是经历过实战总结而成 每一条原则背后都是血淋淋的教训 这些原则主要是针对数据库开发人员,在开发过程中务必注意 总是在灾难发生后,才想起容灾的重要性; 总是在吃过亏以后,才记得曾有人提醒过。 一、核心原则…

大话领域驱动设计——表示层及其他

概述表示层又称用户界面层,包含应用程序的页面、组件等UI元素。服务层提供项目的HTTP API接口,包含MVC Controller和相关组件。ABP框架虽然在表示层提供了不少组件,但是这些和DDD本身没有多少关系。而且随着前后端分离架构的流行,…

Windows10家庭中文版没有本地策略选项完美解决方案

Win+R,在运行中输入:secpol.msc,查看安全设置是否打开,如下图所示。 组策略对于优化和维护Windows系统来说十分重要。众所周知,Windows 10家庭版中并不包含组策略,对于使用家庭版Windows的朋友来说,十分不方便。 通常情况下,如果策略组没有打开的话,在安装CAD等软件时…

【ArcGIS风暴】栅格计算器(Raster Calculator)运算出现错误问题及解决方案汇总

栅格计算器(Raster Calculator) 是一种空间分析函数工具,可以输入地图代数表达式,使用运算符和函数来做数学计算,建立选择查询,或键入地图代数语法。只有熟练的运用并记忆一些常用的公式,才能很好的运用栅格计算器。在使用的过程中,容易出现这样那样的问题,本文就把栅…

为 ServiceCollection 实现装饰器模式

为 ServiceCollection 实现装饰器模式Intro在二十四种设计模式中,有一个模式叫做装饰器模式一般用来动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活,有更好的扩展性,我们也可以借助 D…

手把手教你启用Win10的Linux子系统 Ubuntu

1、打开“开发者选项” 2、启用“执行 Linux 程序的windows 子系统” 3、应用商店下载安装Ubuntu 附:ubuntu的一些命令及查看已安装软件包的命令 // 系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat…

【地理信息系统GIS】教案(七章全)第五章:空间数据查询与空间分析

目录 第一节 空间数据查询第二节 缓冲区分析第三节 叠置分析第四节 网络分析第五节 DEM建立及分析第一节 空间数据查询 1.1 空间数据查询 1、空间数据查询的含义 从空间数据库中找出所有满足属性约束条件和空间约束条件的地理对象。 空间数据查询的一般过程 2、空间数据查询…

[转]5分钟实现Android中更换头像功能

5分钟实现Android中更换头像功能 写在前面: 更换头像这个功能在用户界面几乎是100%出现的。通过拍摄照片或者调用图库中的图片,并且进行剪裁,来进行头像的设置。 功能相关截图如下: 下面我们直接看看完整吧: public cl…

Excel VBA窗体上打印系统时间print now出错原因及解决方案

如图所示,需要在窗体上显示当前系统时间: 首先,我们看一下now函数的原型: Now 函数   语法:Now   说明:返回一个 Variant (Date),根据计算机系统设置的日期和时间来指定日期和时间。   示例: Private Sub CommandButton1_Click()Dim a As Varianta = NowMsgBox…