`

Java 字符串本质

    博客分类:
  • java
 
阅读更多

Java字符串本质上是char序列组成.
char是一个采用UTF-16编码表示Unicode代码点的代码单元.大多数的常用Unicode字符使用一个代码元就可以表示,而辅助字符需要一对代码元表示.
具体编码规范见 http://ilnba.iteye.com/admin/blogs/1612414

  length方法将返回采用UTF-16编码表示的给定字符串所需要的代码单元数量.

 

 public class StringTest {

	
	public static void main(String[] args){
		
		String greeting="\uD950\uDF21hello";
		int length = greeting.length(); // code unit count is 7
		int cpCount = greeting.codePointCount(0, length); //code point count is 6
		greeting.charAt(0); //  the lead surrogate of the first character 
		greeting.charAt(1); //  the trail surrogate of the first character
		greeting.charAt(2); //  h
		greeting.charAt(3); //  e
		greeting.charAt(4); //  l 
		greeting.charAt(5); //  l
		greeting.charAt(6); //  0 
		
		System.out.println(greeting.charAt(0));
		System.out.println(greeting.charAt(1));
		System.out.println(greeting.charAt(2));
		System.out.println(greeting.charAt(3));
		System.out.println(greeting.charAt(4));
		System.out.println(greeting.charAt(5));
		System.out.println(greeting.charAt(6));
		 
	}

}

 

在这里\uD950\uDF21表示一个特殊的UTF-16字符也就是一个UTF-16代码点,由两个代码元组成.

 

一个很好的参考示例

http://blog.csdn.net/joneyonly/article/details/592661

分享到:
评论

相关推荐

    java 字符串a-z排序

    首先,我们需要理解字符串在Java中的本质。在Java中,字符串是不可变的对象,由`String`类表示。这意味着一旦创建了一个字符串对象,它的内容就不能被修改。因此,如果我们要对一个字符串中的字符进行排序,我们不能...

    java 字符串操作类

    `isEmpty()` 通常用于检查字符串是否为 null 或长度为 0,而 `isNotBlank()` 不仅检查空和长度,还会考虑字符串中是否有空白字符,确保字符串含有实质性的内容。 4. **去除空格**: `trim()` 方法用于去除字符串两...

    java字符串编码转换

    ### Java字符串编码转换详解 #### 一、Java 字符串编码转换基础 在Java中,字符串的处理是非常常见的操作之一,而字符编码是确保数据正确显示的关键因素。本篇文章将重点介绍Java中字符串编码的转换方法及其在Web...

    java字符串 详解 java实例20

    Java字符串在编程中扮演着至关重要的角色,它们是程序中数据处理的核心部分,尤其是在文本处理、用户输入验证、数据解析等场景下。本实例“Java字符串详解 Java实例20”将深入探讨Java中的字符串处理机制,包括其...

    [待删除]字符串截取 - 中英文

    ### Java字符串截取 #### 原理与实现 在Java中,字符串本质上是一个不可变的字符序列,由`char`类型的数组构成。因此,字符串的截取实质上是对这个字符数组的子集操作。Java提供了一系列的方法来实现字符串的截取...

    jsp页面截取字符串

    JSP 页面实质上是 Java 代码的视图部分,因此可以使用 Java 的 String 类提供的方法来截取字符串。以下是一些常用的方法: - `substring(int beginIndex, int endIndex)`:此方法用于从字符串中提取子字符串。`...

    Java8 将List<Integer> 转换成以逗号分割的String字符串

    这两种方法的本质区别在于,`reduce`方法更适合于计算类型的累积,而`joining`是专门为字符串连接设计的,因此在处理字符串时通常更高效。 此外,理解`map`方法也很重要。`map`是一个转换操作,它接收一个函数,将...

    字符串专题文档

    在Java中,`String`类提供了丰富的字符串处理方法,而Python的字符串操作则更为简洁灵活。C++和C#也有自己的字符串处理库,如C++的`std::string`和C#的`System.String`。 在实际项目中,字符串处理技术常常与其他...

    java 中关于字符串的笔记,超级详细

    字符串本质上是一系列字符的有序集合,Java中字符串是不可变的对象,即一旦创建后,其内容不能更改。 **创建字符串的方式主要有两种:** 1. **使用`String`类的构造方法:** ```java String s = new String(...

    Java基础之字符串及String

    字符串的本质是`char`数组,即`char[]`,例如: ```java String str = "laofu"; // 等价于 char[] cs = {'l', 'a', 'o', 'f', 'u'}; ``` 字符串的空值有两种情况: 1. **对象引用为空**:`String s1 = null;`,此时...

    二进制字节与字符串之间的转换

    在IT领域,数据的处理和传输常常涉及到二进制字节和字符串之间的转换。这是因为不同的系统和编程语言可能以不同的方式处理数据,有时需要将原始的二进制数据转化为易于处理和显示的字符串形式,反之亦然。在这个过程...

    将word文档转化成字符串或者txt文档、将txt文档转化成字符串

    将TXT文档转换为字符串就相对简单了,因为TXT文件本质上就是一串连续的字符。在Java中,我们可以通过`BufferedReader`类来读取TXT文件的内容并将其存储为字符串: ```java import java.io.*; public class ...

    网络通信,图片,文件,字符串传输

    本项目主要关注的是如何通过Java实现网络上的数据传输,包括字符串、文件和图片。下面将详细阐述Java网络通信的基本原理、关键技术以及实现图片和文件传输的策略。 首先,Java中的网络通信主要是基于Socket编程实现...

    java转换字符串编码格式的方法

    在Java中,字符编码转换是一个常见的需求,特别是当我们处理不同的数据源和目标存储介质时,常常需要转换字符串的编码格式以保证数据的正确显示和处理。字符编码是字符集的表示形式,规定了某个文字对应的二进制数字...

    字符串和base64的编码与解码

    在字符串与Base64的转换中,我们首先需要理解字符串的本质。在大多数编程语言中,字符串是由Unicode字符组成的序列,每个字符可以由一个或多个字节表示,具体取决于字符集(如ASCII、UTF-8等)。当需要将字符串编码...

    C语言字符串我的理解.docx

    在C语言中,字符串本质上是字符数组的一种特殊形式,其中**最后一个字符必须是`\0`**。这个特殊的字符标记着字符串的结束。例如,对于字符串 `"Hello"`,在内存中它实际上是 `"Hello\0"`,占用6个字节的空间(5个...

    字符数组的存储方式 字符串常量池.docx

    在Java编程语言中,字符串是极其重要的数据类型,它们在程序执行过程中被广泛使用。为了提高效率和内存管理,Java虚拟机(JVM)引入了字符串常量池这一概念。字符串常量池是一个特殊的区域,它存储了程序中所有的...

    java 参数转换为matlab参数

    - **复杂类型转换**:如果Java对象是自定义类,需要序列化为字符串或字节数组,然后在MATLAB端反序列化恢复。 5. **源码实例** 下面是一个简单的Java源码实例,展示了如何将Java整型数组转换为MATLAB的双精度数组...

    将双精度数转换为字符串的 Java 程序.docx

    在 Java 编程中,将双精度数(`double`)转换为字符串是常见的操作,尤其是在处理数值显示、数据存储或者与用户界面交互时。本文将详细介绍两种主要的方法:使用 `String` 类的 `valueOf()` 方法和使用 `Double` 类...

    二维字符串数组.zip

    二维字符串数组,顾名思义,是由多个字符串数组组成的数组,其本质是多维数组的一种形式,通常用二维数组来表示。例如,一个二维字符串数组可以用来存储表格数据,每一行代表一行数据,每一列则代表一种特定的属性。...

Global site tag (gtag.js) - Google Analytics