Java String 类详解

简介: Java 中的 `String` 类用于表示不可变的字符序列,是 Java 标准库 `java.lang` 包的一部分。字符串对象一旦创建,其内容不可更改,修改会生成新对象。

Java中的 String 类是一个非常重要的类,用于表示不可变的字符序列。它是 Java 标准库中的一部分,属于 java.lang 包。由于字符串在许多编程场景下的频繁使用,了解 String 类的特性、方法与使用方式是非常重要的。

1. 基本概述

  • 不可变性:Java 的 String 对象是不可变的。一旦创建了字符串对象,它的内容就不能被改变。如果对字符串进行修改,实际上是创建了一个新的字符串对象。
  • 创建方式:可以使用字面值创建字符串(String str = "Hello";)或通过 new 关键字创建(String str = new String("Hello");)。

2. 主要构造方法

  • String(): 创建一个空字符串对象。
  • String(String original): 用指定的字符串初始化新创建的字符串对象。
  • String(char[] value): 用字符数组初始化新创建的字符串对象。
  • String(byte[] bytes): 用字节数组初始化新创建的字符串对象。

3. 重要的方法

3.1. 字符串基本操作

  • length(): 返回字符串的长度。
  • charAt(int index): 返回指定索引处的字符。
  • substring(int beginIndex): 返回从指定索引开始到末尾的子字符串。
  • substring(int beginIndex, int endIndex): 返回从 beginIndexendIndex(不包括)之间的子字符串。

3.2. 查找与替换

  • indexOf(String str): 返回指定子字符串在此字符串中第一次出现的索引。
  • lastIndexOf(String str): 返回指定子字符串在此字符串中最后一次出现的索引。
  • replace(CharSequence target, CharSequence replacement): 替换所有出现的指定字符序列。

3.3. 大小写转换

  • toLowerCase(): 将字符串转换为小写字母。
  • toUpperCase(): 将字符串转换为大写字母。

3.4. 去空白与填充

  • trim(): 去掉字符串两端的空白符。
  • padStart(int minLength, char padChar): 在字符串开头填充指定字符,直到达到指定长度(需使用其他类)。
  • padEnd(int minLength, char padChar): 在字符串结尾填充指定字符,直到达到指定长度(需使用其他类)。

3.5. 字符串比较

  • equals(Object anObject): 比较此字符串与指定对象的内容是否相等。
  • equalsIgnoreCase(String anotherString): 比较此字符串与指定字符串(忽略大小写)是否相等。
  • compareTo(String anotherString): 按字典顺序比较两个字符串。

3.6. 分割与连接

  • split(String regex): 根据给定的正则表达式将字符串分割成字符串数组。
  • join(CharSequence delimiter, CharSequence... elements): 使用指定的分隔符连接字符串数组(Java 8+)。

3.7. 转换为其他类型

  • toString(): 返回字符串对象的字符串表示。
  • getBytes(): 将字符串转换为字节数组(使用平台的默认字符集)。

4. 示例代码

下面是一些示例代码,演示了 String 类的常用方法:

public class StringExample {
   
    public static void main(String[] args) {
   
        String str1 = "Hello, World!";
        String str2 = "Java";

        // 字符串长度
        System.out.println("Length of str1: " + str1.length());

        // 字符访问
        System.out.println("Character at index 7: " + str1.charAt(7));

        // 子字符串
        System.out.println("Substring (7, 12): " + str1.substring(7, 12));

        // 查找
        System.out.println("Index of 'World': " + str1.indexOf("World"));

        // 替换
        System.out.println("Replaced String: " + str1.replace("World", "Java"));

        // 大小写转换
        System.out.println("Lowercase: " + str1.toLowerCase());
        System.out.println("Uppercase: " + str1.toUpperCase());

        // 比较
        System.out.println("Strings are equal: " + str1.equals(str1));

        // 分割
        String[] parts = str1.split(", ");
        for (String part : parts) {
   
            System.out.println("Part: " + part);
        }
    }
}

5. 总结

Java 的 String 类是操作字符序列的基础,提供了丰富的方法来处理字符串。由于字符串在 Java 编程中的广泛使用,掌握 String 类的特性和方法对于高效编程至关重要。注意字符串的不可变性和性能开销,这在处理大量字符串时非常关键。

相关文章
|
5天前
|
Java 编译器
Java——类与对象(继承和多态)
本文介绍了面向对象编程中的继承概念,包括如何避免重复代码、构造方法的调用规则、成员变量的访问以及权限修饰符的使用。文中详细解释了继承与组合的区别,并探讨了多态的概念,包括向上转型、向下转型和方法的重写。此外,还讨论了静态绑定和动态绑定的区别,以及多态带来的优势和弊端。
20 9
Java——类与对象(继承和多态)
|
5天前
|
SQL Java 编译器
Java——类与对象(封装)
封装是面向对象编程中的概念,指将数据(属性)和相关操作(方法)组合成独立单元(类),使外部无法直接访问对象的内部状态,只能通过提供的方法进行交互,从而保护数据安全。例如,手机将各种组件封装起来,只暴露必要的接口供外部使用。实现封装时,使用`private`关键字修饰成员变量,并提供`get`和`set`方法进行访问和修改。此外,介绍了包的概念、导入包的方式及其注意事项,以及`static`关键字的使用,包括静态变量和方法的初始化与代码块的加载顺序。
18 10
Java——类与对象(封装)
|
5天前
|
Java C语言
Java——类与对象
这段内容介绍了Java中的类和对象、`this`关键字及构造方法的基本概念。类是对现实世界事物的抽象描述,包含属性和方法;对象是类的实例,通过`new`关键字创建。`this`关键字用于区分成员变量和局部变量,构造方法用于初始化对象。此外,还介绍了标准JavaBean的要求和生成方法。
18 9
Java——类与对象
|
5天前
|
安全 Java API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
|
4天前
|
存储 安全 Java
Java——String类详解
String 是 Java 中的一个类,用于表示字符串,属于引用数据类型。字符串可以通过多种方式定义,如直接赋值、创建对象、传入 char 或 byte 类型数组。直接赋值会将字符串存储在串池中,复用相同的字符串以节省内存。String 类提供了丰富的方法,如比较(equals() 和 compareTo())、查找(charAt() 和 indexOf())、转换(valueOf() 和 format())、拆分(split())和截取(substring())。此外,还介绍了 StringBuilder 和 StringJoiner 类,前者用于高效拼接字符串,后者用于按指定格式拼接字符串
10 1
Java——String类详解
|
23小时前
|
安全 Java
Java StringBuffer 和 StringBuilder 类详解
在 Java 中,`StringBuffer` 和 `StringBuilder` 用于操作可变字符串,支持拼接、插入、删除等功能。两者的主要区别在于线程安全性和性能:`StringBuffer` 线程安全但较慢,适用于多线程环境;`StringBuilder` 非线程安全但更快,适合单线程环境。选择合适的类取决于具体的应用场景和性能需求。通常,在不需要线程安全的情况下,推荐使用 `StringBuilder` 以获得更好的性能。
|
23小时前
|
Java 开发者
Java Character 类详解
Java中的`Character`类是`java.lang`包的一部分,用于将基本类型`char`封装为对象,并提供了丰富的静态方法来处理字符,如类型判断、大小写转换等。
|
5天前
|
Java
Java Character 类详解
`Character` 类是 Java 中的一个封装类,位于 `java.lang` 包中,主要用于处理单个字符。它是一个最终类,提供了多种静态方法来检查和操作字符属性,如判断字符是否为字母、数字或空格,以及转换字符的大小写等。此外,`Character` 类还支持自动装箱和拆箱,简化了 `char` 和 `Character` 之间的转换。以下是一些示例代码,展示了如何使用 `Character` 类的方法来检查字符属性和执行字符转换。掌握 `Character` 类的用法有助于更高效地处理字符数据。
|
5天前
|
Java
Java Number & Math 类详解
在 Java 中,`Number` 类和 `Math` 类是处理数字和数学运算的重要工具。
|
1月前
|
Java 开发者
奇迹时刻!探索 Java 多线程的奇幻之旅:Thread 类和 Runnable 接口的惊人对决
【8月更文挑战第13天】Java的多线程特性能显著提升程序性能与响应性。本文通过示例代码详细解析了两种核心实现方式:Thread类与Runnable接口。Thread类适用于简单场景,直接定义线程行为;Runnable接口则更适合复杂的项目结构,尤其在需要继承其他类时,能保持代码的清晰与模块化。理解两者差异有助于开发者在实际应用中做出合理选择,构建高效稳定的多线程程序。
44 7