Java里String的length技巧
发布时间:2021-12-18 18:37:25 所属栏目:PHP教程 来源:互联网
导读:首先说一下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()); ![]() (编辑:云计算网_泰州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |