加入收藏 | 设为首页 | 会员中心 | 我要投稿 宁德站长网 (https://www.0593zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Java里String的length技巧

发布时间:2021-11-24 21:34:51 所属栏目:教程 来源:互联网
导读:首先说一下char类型: char类型用来表示单个字符。要想弄清楚char类型,就必须了解Unicode编码表。 在设计Java时决定采用16位的Unicode字符集。能表示65536个字符。 十分遗憾,经过一段时间,不可避免的事情发生了。Unicode字符超过了65536个。 (主要原因是

首先说一下char类型:
char类型用来表示单个字符。要想弄清楚char类型,就必须了解Unicode编码表。
在设计Java时决定采用16位的Unicode字符集。能表示65536个字符。
十分遗憾,经过一段时间,不可避免的事情发生了。Unicode字符超过了65536个。
(主要原因是增加了大量的汉语、日语、韩语这样的表意文字),也就是16位的char类型已经不能满足所有的Unicode字符的需要了。
 
代码点(code point):是指与一个编码表中的某个字符对应的代码值。
在Unicode标准中,代码点采用十六进制书写,并加上前缀U+,例如U+0041就是字母A的代码点。
 
Unicode的代码点可以分成17个代码级别(code plane).
第一个代码级别成为 基本的多语言级别(basic multilingual plane),代码点从U+0000大U+FFFF,其中包含了经典的Unicode代码。
其余的16个附加级别代码点从U+10000到U+10FFFF,其中包括了一些辅助字符(supplementary character)。
 
UTF-16编码采用不同长度的编码表示所有Unicode代码点。在基本的多语言级别中,每个字符用16位表示,通常被称为代码单元(code unit)。而辅助字符采用一对连续的代码单元进行编码。
 
Java中得代码点与代码单元:
 
Java字符串由char序列组成。字符数据类型是一个采用UTF-16编码表示Unicode代码点的代码单元。
大多数的常用Unicode字符使用一个代码单元就可以表示,而辅助字符需要一对代码单元表示。
 
length方法将返回采用UTF-16编码表示的给定字符串所需要的代码单元数量。
String greeting = "Hello";
int n = greeting.length(); //is 5
要想得到实际的长度,即代码点数量,可以调用:
int cpCount = greeting.codePointCount(0, greeting.length());

(编辑:宁德站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读