### Java中字符串的所有用法详解 #### 一、概述 Java 中的字符串处理非常常见,也是编程基础之一。本文档将详细介绍 Java 字符串的各种用法及其相关方法,包括常用的字符串操作方法、比较方法以及一些高级特性。这些知识点对于理解和掌握 Java 的字符串处理功能至关重要。 #### 二、字符串的基本操作 ##### 1. `length()`: 获取字符串的长度 - **功能**: 返回字符串中的字符数量。 - **示例**: ```java char chars[] = {'a', 'b', 'c'}; String s = new String(chars); int len = s.length(); System.out.println("字符串长度: " + len); // 输出: 字符串长度: 3 ``` ##### 2. `charAt()`: 获取指定位置的字符 - **功能**: 返回字符串中指定索引位置的字符。 - **示例**: ```java char ch; ch = "abc".charAt(1); // 返回 'b' System.out.println("获取的字符: " + ch); // 输出: 获取的字符: b ``` ##### 3. `getChars()`: 截取多个字符 - **功能**: 将字符串的一部分复制到目标字符数组中。 - **参数**: - `sourceStart`: 源字符串的起始索引。 - `sourceEnd`: 源字符串的结束索引(不包括此位置)。 - `target`: 目标字符数组。 - `targetStart`: 目标数组的起始索引。 - **示例**: ```java String s = "this is a demo of the getChars method."; char buf[] = new char[20]; s.getChars(10, 14, buf, 0); System.out.println(new String(buf, 0, 4)); // 输出: demo ``` ##### 4. `getBytes()`: 转换为字节数组 - **功能**: 将字符串转换为字节数组,默认使用平台的默认字符集。 - **示例**: ```java String str = "Hello"; byte[] bytes = str.getBytes(); System.out.println(Arrays.toString(bytes)); // 输出字节数组表示形式 ``` ##### 5. `toCharArray()`: 转换为字符数组 - **功能**: 将字符串转换为字符数组。 - **示例**: ```java String str = "Hello"; char[] chars = str.toCharArray(); System.out.println(Arrays.toString(chars)); // 输出: [H, e, l, l, o] ``` #### 三、字符串的比较与匹配 ##### 6. `equals()` 和 `equalsIgnoreCase()`: 比较字符串 - **功能**: - `equals()`: 比较两个字符串的内容是否完全相同。 - `equalsIgnoreCase()`: 比较两个字符串的内容是否相同,忽略大小写差异。 - **示例**: ```java String str1 = "Hello"; String str2 = "hello"; System.out.println(str1.equals(str2)); // 输出: false System.out.println(str1.equalsIgnoreCase(str2)); // 输出: true ``` ##### 7. `regionMatches()`: 区域匹配 - **功能**: 比较一个字符串中特定区域与另一个字符串中的相应区域是否相同,支持忽略大小写的选项。 - **示例**: ```java String str1 = "HelloWorld"; String str2 = "helloworld"; boolean match = str1.regionMatches(true, 0, str2, 0, 5); System.out.println("区域匹配结果: " + match); // 输出: 区域匹配结果: true ``` ##### 8. `startsWith()` 和 `endsWith()`: 开头或结尾匹配 - **功能**: - `startsWith()`: 判断字符串是否以指定的前缀开头。 - `endsWith()`: 判断字符串是否以指定的后缀结尾。 - **示例**: ```java String str = "Hello World"; System.out.println(str.startsWith("Hello")); // 输出: true System.out.println(str.endsWith("World")); // 输出: true ``` #### 四、字符串的查询与替换 ##### 9. `indexOf()` 和 `lastIndexOf()`: 查找子串位置 - **功能**: - `indexOf()`: 返回指定字符或子串首次出现的位置。 - `lastIndexOf()`: 返回指定字符或子串最后一次出现的位置。 - **示例**: ```java String str = "Hello World"; int index = str.indexOf('o'); System.out.println("字符 'o' 首次出现的位置: " + index); // 输出: 字符 'o' 首次出现的位置: 4 int lastIndex = str.lastIndexOf('o'); System.out.println("字符 'o' 最后一次出现的位置: " + lastIndex); // 输出: 字符 'o' 最后一次出现的位置: 7 ``` ##### 10. `substring()`: 截取子串 - **功能**: 返回字符串中的一部分作为新的字符串。 - **示例**: ```java String str = "Hello World"; String subStr = str.substring(0, 5); System.out.println("截取的子串: " + subStr); // 输出: 截取的子串: Hello ``` ##### 11. `concat()`: 连接字符串 - **功能**: 连接两个字符串。 - **示例**: ```java String str1 = "Hello"; String str2 = "World"; String result = str1.concat(str2); System.out.println("连接后的字符串: " + result); // 输出: 连接后的字符串: HelloWorld ``` ##### 12. `replace()`: 替换字符或子串 - **功能**: - `replace(char original, char replacement)`: 替换字符串中所有的指定字符。 - `replace(CharSequence original, CharSequence replacement)`: 替换字符串中的指定字符序列。 - **示例**: ```java String str = "Hello World"; String replaced = str.replace('o', 'x'); System.out.println("替换后的字符串: " + replaced); // 输出: 替换后的字符串: Hellx Wxrld ``` ##### 13. `trim()`: 去除前后空白字符 - **功能**: 去除字符串两端的空白字符。 - **示例**: ```java String str = " Hello World "; String trimmed = str.trim(); System.out.println("去除空白后的字符串: " + trimmed); // 输出: 去除空白后的字符串: Hello World ``` #### 五、字符串的转换 ##### 14. `valueOf()`: 转换为字符串 - **功能**: 将基本类型或其他对象转换为字符串。 - **示例**: ```java int num = 123; String strNum = String.valueOf(num); System.out.println("转换后的字符串: " + strNum); // 输出: 转换后的字符串: 123 ``` ##### 15. `toLowerCase()` 和 `toUpperCase()`: 大小写转换 - **功能**: - `toLowerCase()`: 将字符串转换为全部小写字母。 - `toUpperCase()`: 将字符串转换为全部大写字母。 - **示例**: ```java String str = "Hello World"; String lower = str.toLowerCase(); String upper = str.toUpperCase(); System.out.println("转换为小写: " + lower); // 输出: 转换为小写: hello world System.out.println("转换为大写: " + upper); // 输出: 转换为大写: HELLO WORLD ``` #### 六、`StringBuffer` 类 ##### 16. `StringBuffer`: 可变字符串类 - **功能**: 提供了一个可变的字符串类,可以在运行时动态地修改字符串内容。 - **构造函数**: - `StringBuffer()`: 创建一个新的空 `StringBuffer` 对象。 - `StringBuffer(int size)`: 创建具有指定初始容量的 `StringBuffer` 对象。 - `StringBuffer(String str)`: 创建一个包含指定字符串的 `StringBuffer` 对象。 - `StringBuffer(CharSequence chars)`: 创建一个包含指定字符序列的 `StringBuffer` 对象。 ##### 17. `length()` 和 `capacity()` - **功能**: - `length()`: 获取 `StringBuffer` 当前包含的字符数。 - `capacity()`: 获取 `StringBuffer` 的当前容量。 - **示例**: ```java StringBuffer sb = new StringBuffer("Hello"); System.out.println("长度: " + sb.length()); // 输出: 长度: 5 System.out.println("容量: " + sb.capacity()); // 输出: 容量: 16 ``` ##### 18. `ensureCapacity()`: 设置缓冲区的大小 - **功能**: 确保 `StringBuffer` 的容量至少为指定值。 - **示例**: ```java StringBuffer sb = new StringBuffer("Hello"); sb.ensureCapacity(20); System.out.println("设置容量后: " + sb.capacity()); // 输出: 设置容量后: 20 ``` ##### 19. `setLength()`: 设置长度 - **功能**: 改变 `StringBuffer` 的长度,如果新长度小于当前长度,则截断字符串;如果新长度大于当前长度,则添加空格填充。 - **示例**: ```java StringBuffer sb = new StringBuffer("Hello"); sb.setLength(10); System.out.println("设置长度后: " + sb); // 输出: 设置长度后: Hello ``` ##### 20. `charAt()` 和 `setCharAt()` - **功能**: - `charAt(int where)`: 获取指定位置的字符。 - `setCharAt(int where, char ch)`: 设置指定位置的字符。 - **示例**: ```java StringBuffer sb = new StringBuffer("Hello"); char ch = sb.charAt(1); // 获取第二个字符 sb.setCharAt(1, 'i'); // 修改第二个字符 System.out.println("修改后的字符串: " + sb); // 输出: 修改后的字符串: Hillo ``` 通过以上内容的介绍,我们可以看到 Java 中字符串的功能十分强大,能够满足各种复杂的字符串处理需求。无论是简单的字符串操作还是复杂的文本处理,Java 的字符串类都能提供强大的支持。
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 三电平半桥LLC谐振变换器电路仿真 采用频率控制方式 引入一定的移相角度(比较小) 驱动信号采用CMPA CMPB方式产生 增计
- delphi+数据控制组件+查询
- 单片机仿真∶电流电压检测系统 可完成(1)电网参数监测,包括电流、电压 (2)监测参数的显示; (3)报警数据数值设定(按键)
- SpringBoot之移动互联网论坛网站
- 基于PLC和组态软件的智能停车场收费系统停车场电气控制
- 西门子PLc程序,博途V16 V17版1200与多台G120变频器通过过modbus RTU485 通讯控制,模拟量转换,温度
- 基于springboot的论坛网站
- 恒压供水,维纶通屏+s7 200程序
- 基于S7-200 PLC和组态王组态切片机控制系统 带解释的梯形图程序,接线图原理图图纸,io分配,组态画面
- 相关材料认证的备份11