### String类常见功能详解 #### 一、String类概述 String 类在 Java 中是一个非常重要的类,用于表示不可变的字符序列。简单来说,就是它代表了一串字符组成的字符串,并且一旦创建,其内容不能被修改。这在 Java 语言中被称为“不可变性”或“Immutable”。 **示例代码**: ```java char[] str = {'a', 'b', 'c'}; String str2 = new String(str); System.out.println(str2); // 输出结果为 "abc" ``` #### 二、String类的构造方法 String 类提供了多种构造方法来创建字符串对象: 1. **公共无参构造方法**: - `public String()`: 创建一个新的空字符串对象。 2. **基于字节数组的构造方法**: - `public String(byte[] bytes)`: 将一个字节数组转换为字符串。 - `public String(byte[] bytes, int index, int length)`: 将字节数组的一部分转换为字符串,从索引 `index` 开始,长度为 `length`。 3. **基于字符数组的构造方法**: - `public String(char[] value)`: 将一个字符数组转换为字符串。 - `public String(char[] value, int index, int count)`: 将字符数组的一部分转换为字符串,从索引 `index` 开始,长度为 `count`。 4. **基于字符串常量值的构造方法**: - `public String(String original)`: 将一个字符串常量值转换为新的字符串对象。 **注意**: - 字节的范围为 -128 到 127。 - 字符数组、字节数组都可以转换成一个字符串对象。 #### 三、String类的特点 String 类的一个重要特性是其内容一旦被初始化就不能改变。这意味着如果尝试更改一个字符串的内容,实际上是创建了一个新的字符串对象。 **示例代码**: ```java String s = "hello"; // "hello" 的值没有变,变的是 s 的引用 s += "world"; System.out.println(s); // 输出 "helloworld" ``` 这种行为可以通过理解字符串常量池的概念来进一步解释。当直接使用字符串赋值时,Java 会在字符串常量池中查找该字符串是否存在。如果存在,则直接返回该引用;如果不存在,则会在池中创建该字符串的实例,并返回其引用。 #### 四、String类相关面试题解析 1. **字符串对象创建的区别** - `String s1 = new String("hello");` - `String s2 = "hello";` 这两行代码的区别在于: - `new String("hello")` 会创建两个对象,一个是字符串常量池中的 `"hello"` 对象,另一个是通过 `new` 关键字创建的新对象。 - 而 `String s2 = "hello";` 只会创建一个对象,即字符串常量池中的 `"hello"`。 **代码示例**: ```java String s1 = new String("hello"); String s2 = "hello"; System.out.println(s1 == s2); // 输出 false System.out.println(s1.equals(s2)); // 输出 true ``` 2. **字符串拼接与比较** ```java public class StringDemo4 { public static void main(String[] args) { String s1 = "hello"; String s2 = "world"; String s3 = "helloworld"; System.out.println(s3 == s1 + s2); // 输出 false System.out.println(s3.equals(s1 + s2)); // 输出 true System.out.println(s3 == "hello" + "world"); // 应该输出 true System.out.println(s3.equals("hello" + "world")); // 输出 true } } ``` 上述代码中,当字符串是常量相加时,Java 会在字符串常量池中查找或创建相应的字符串。因此,`s3` 和 `"hello" + "world"` 实际上指向同一个字符串对象,所以 `==` 比较的结果为 `true`。 #### 五、String类的功能方法 String 类提供了丰富的内置方法来操作字符串。以下是一些常用的判断方法: 1. **判断功能** - `boolean equals(Object obj)`: 判断当前字符串与指定的对象是否相等。 - `boolean equalsIgnoreCase(String str)`: 忽略大小写的情况下比较字符串。 - `boolean contains(String str)`: 判断当前字符串是否包含指定的子字符串。 - `boolean startsWith(String str)`: 测试当前字符串是否以指定的前缀开始。 - `boolean endsWith(String str)`: 测试当前字符串是否以指定的后缀结束。 - `boolean isEmpty()`: 判断当前字符串是否为空(即长度是否为 0)。 **示例代码**: ```java String s = "helloworld"; System.out.println(s.contains("lo")); // 输出 true System.out.println(s.startsWith("he")); // 输出 true System.out.println(s.endsWith("ld")); // 输出 true System.out.println(s.isEmpty()); // 输出 false String emptyStr = ""; System.out.println(emptyStr.isEmpty()); // 输出 true ``` 总结而言,String 类在 Java 中具有极其重要的地位,了解其基本特性和用法对于开发高效稳定的 Java 程序至关重要。通过上述内容的学习,可以帮助开发者更好地掌握如何在实际应用中利用 String 类。
- 粉丝: 1218
- 资源: 94
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 14.四步看懂结构化在岗培训(因素+关键步骤+误区).pptx
- 15.结构化面试精华版.xls
- 02.处理难题能力测验.doc
- 05.交流能力测评.doc
- 02.200个名企的面试题详解(微软+谷歌+联合利华).doc
- 08.平面设计试题.doc
- 12.性能设计试题答案.doc
- 05.技术测评试题.doc
- 04.电器试题答案.doc
- 03.电器试题.doc
- 14.注塑模具工艺试题答案.doc
- 13.注塑模具工艺试题.doc
- 机械设计四轴CG侧面自动锁螺丝机sw18可编辑全套设计资料100%好用.zip
- 鬼谷八荒修改器视频教程.zip
- SpringCloudAlibaba技术栈-Higress
- Java项目:校园周边美食探索(java+SpringBoot+Mybaits+Vue+elementui+mysql)