373玩 手游攻略 新游动态 Java中码点、代码单元、length()与codePointCount()的困惑解析

Java中码点、代码单元、length()与codePointCount()的困惑解析

时间:2025-05-09 23:02:31 来源:网络整理 浏览:0

关于代码点,代码单位,方法,方法的一些经验

代码点,代码单元,(),()

以下是我在“ Java Core I卷I”中读到的两种代码:

//String greeting = "Hello";
int n = greeting.length(); //is 5

//String greeting = "Hello";
int cpCount = greeting.codePointCount(0, greeting.length());// is 5

该方法将返回使用UTF-16编码表示给定字符串所需的代码单元数。例如:

=“你好”;

int n =。(); //是5

要获取实际长度,即代码点的数量,您可以致电:

int =。(0,。());

- “ Java Core I卷” P48

两个代码的结果是5,这使我非常困惑:与结果相同,第二代码的含义是什么?

根据上下文并查找一些信息,我已经整理了以下内容:

()方法

这。等于代码单元。

返回此字符串的长度。长度等于字符串中的代码单元数量。

()方法

文本范围内的代码。

返回此字符串指定文本范围内的代码点数。

()方法和()方法之间的区别

从返回值中,我们可以看到:()方法返回代码单元,()方法返回代码点,而代码单元和代码点在上面,它们之间有什么区别?

()

()

返回此字符串的长度。长度等于字符串中的代码单元数量。

返回此字符串指定文本范围内的代码点数

public class Test {
    public static void main(String []args) {
		String greeting = "Hello";

code码_gmdncode码查询_code码信息

int n = greeting.length(); int cpCount = greeting.codePointCount(0, greeting.length()); System.out.println(n); System.out.println(cpCount); } }

public class Test {
    public static void main(String []args) {
		String greeting = "Hello";
		int n = greeting.length();
		int cpCount = greeting.codePointCount(0, greeting.length());
       	System.out.println(n);
		System.out.println(cpCount);
		System.out.println("=");
		String str = "";
		System.out.println(str.length());
		System.out.println(str.codePointCount(0, str.length()));
    }
}

代码点

在我的理解中,代码点是您实际看到的每个字符,例如A,1,%等,它们都被视为代码点。

代码点

代码点是指与编码表中字符相对应的代码值。在标准中,代码点用十六进制编写,并由u+进行前缀。例如,u+0041是拉丁字母A的代码点。代码点可以分为17个代码飞机。第一个代码平面称为基本多语言平面,其中包括具有从U+0000到U+FFFF的代码点的经典代码,其余16架飞机的代码点从U+10000到U+,包括辅助字符。

- “ Java Core I卷” P33

代码单元

代码单元不一定是您实际看到的每个字符。您实际看到的字符可能包含一个代码单元,或者也可能包括两个代码单元,因为:

Java字符串由一系列CHAR类型组成,Char类型最初用于表示单个字符。但是,由于编码机制,16位char类型不再满足描述所有字符的需求。因此,有些字符需要两个字符值来表示,它们可以与上下文中的突出显示字体相对应:代码单元中一个字符的编码。

代码单元

UTF-16编码使用不同长度的编码来表示所有编码。在基本的多语言平面中,每个字符由16位表示,称为代码单元。辅助字符被编码为一对连续的代码单元。该编码对表示的单个值落在基本多语言平面中未使用的2048个值的范围内,通常称为替代区域。这种设计非常聪明,我们可以快速知道字符是在代码单元中编码还是辅助字符的第一部分或第二部分。

- “ Java Core I卷” P33

标题:Java中码点、代码单元、length()与codePointCount()的困惑解析
链接:https://www.373wan.com/news/xydt/45101.html
版权:文章转载自网络,如有侵权,请联系删除!
资讯推荐
更多
暴风城怎么去达拉然去魔兽世界达拉然方法攻略攻略介绍

暴风城怎么去达拉然1.你在暴风城找个法师,请他帮忙开个达拉然的门,一般会开的2.在暴风城码头坐最上面的船,到诺

2025-05-09
前往安装本文目录一览:魔兽世界血色修道院任务大全

本文目录一览: 1、魔兽世界血色修道院任务大全 2、魔兽世界怀旧服血色修道院任务有哪些-

2025-05-09
魔兽世界怀旧服:黑石深渊入口位置及联盟阵营进入方法

魔兽世界黑石深渊入口在哪?黑石深渊是魔兽世界中的一个副本,很多小伙伴还不清楚黑石深渊副本的入口位置,那么

2025-05-09
魔兽世界游戏暴风城到达纳苏斯的交通方式介绍及攻略

在魔兽世界的游戏中,暴风城和达纳苏斯都是玩家经常需要访问的地点。虽然它们在地图上看起来相距不远,但由于游

2025-05-09
1