Java String 类
                           
天天向上
发布: 2025-03-02 10:27:53

原创
427 人浏览过

String 类是 Java 中最常用的类之一,用于表示和操作字符串。与其他类不同,String 是不可变的(immutable),即一旦创建了 String 对象,它的内容就不能更改。String 类位于 java.lang 包下。

1. String 类概述

  • String 类用于表示一系列字符。
  • 字符串在 Java 中是对象,但它们有一些特殊的处理方式。
  • String 是不可变的,这意味着任何对字符串的修改都会生成一个新的字符串,而不会改变原来的字符串。
  • 字符串使用 UTF-16 编码存储。

2. 常用的 String 类方法

2.1 创建字符串

  • 使用字面量
  String str = "Hello";
  • 使用 new 关键字
  String str = new String("Hello");

2.2 获取字符串的长度

  • length() 方法返回字符串的长度(字符数)。
String str = "Hello";
System.out.println(str.length());  // 输出 5

2.3 字符串拼接

  • 使用 + 运算符:
  String str1 = "Hello";
  String str2 = " World!";
  String result = str1 + str2;
  System.out.println(result);  // 输出 "Hello World!"
  • 使用 concat() 方法:
  String result = str1.concat(str2);
  System.out.println(result);  // 输出 "Hello World!"

2.4 字符串比较

  • equals():比较两个字符串的内容是否相同(区分大小写)。
  String str1 = "Hello";
  String str2 = "hello";
  System.out.println(str1.equals(str2));  // 输出 false
  • equalsIgnoreCase():比较两个字符串的内容是否相同(忽略大小写)。
  System.out.println(str1.equalsIgnoreCase(str2));  // 输出 true
  • compareTo():按字典顺序比较两个字符串。如果当前字符串小于目标字符串,返回负数;等于返回 0;大于返回正数。
  String str1 = "abc";
  String str2 = "xyz";
  System.out.println(str1.compareTo(str2));  // 输出负数,因为 "abc" 小于 "xyz"

2.5 字符串查找

  • indexOf():查找子字符串或字符第一次出现的位置。
  String str = "Hello World";
  System.out.println(str.indexOf('o'));  // 输出 4
  System.out.println(str.indexOf("World"));  // 输出 6
  • lastIndexOf():查找子字符串或字符最后一次出现的位置。
  System.out.println(str.lastIndexOf('o'));  // 输出 7

2.6 截取字符串

  • substring():从指定位置开始截取字符串。
  String str = "Hello World";
  String substr = str.substring(6);
  System.out.println(substr);  // 输出 "World"

  String substr2 = str.substring(0, 5);
  System.out.println(substr2);  // 输出 "Hello"

2.7 字符串替换

  • replace():替换指定的字符或子字符串。
  String str = "Hello World";
  String result = str.replace("World", "Java");
  System.out.println(result);  // 输出 "Hello Java"

2.8 字符串去除空白字符

  • trim():去除字符串前后的空白字符(如空格、换行等)。
  String str = "  Hello World  ";
  System.out.println(str.trim());  // 输出 "Hello World"

2.9 转换字符串大小写

  • toLowerCase():将字符串转换为小写字母。
  String str = "HELLO";
  System.out.println(str.toLowerCase());  // 输出 "hello"
  • toUpperCase():将字符串转换为大写字母。
  String str = "hello";
  System.out.println(str.toUpperCase());  // 输出 "HELLO"

2.10 字符串连接(StringBuilder/StringBuffer)

由于字符串是不可变的,每次拼接字符串都会创建新的对象,这会导致性能开销。如果需要频繁拼接字符串,可以使用 StringBuilderStringBuffer 类。

  • StringBuilderStringBuffer:这两个类提供了可变的字符串,可以高效地进行拼接操作。
  StringBuilder sb = new StringBuilder("Hello");
  sb.append(" World");
  System.out.println(sb.toString());  // 输出 "Hello World"

2.11 转换为字符数组

  • toCharArray():将字符串转换为字符数组。
  String str = "Hello";
  char[] charArray = str.toCharArray();
  System.out.println(charArray);  // 输出 "Hello"

2.12 字符串的分割

  • split():根据指定的分隔符将字符串分割成多个部分,返回一个字符串数组。
  String str = "apple,banana,orange";
  String[] fruits = str.split(",");
  for (String fruit : fruits) {
      System.out.println(fruit);
  }
  // 输出:
  // apple
  // banana
  // orange

3. String 类的常见实例

3.1 字符串拼接

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

        // 使用 + 运算符
        String result1 = str1 + str2;
        System.out.println(result1);  // 输出 "Java is awesome!"

        // 使用 concat() 方法
        String result2 = str1.concat(str2);
        System.out.println(result2);  // 输出 "Java is awesome!"
    }
}

3.2 字符串比较

public class StringComparisonExample {
    public static void main(String[] args) {
        String str1 = "Hello";
        String str2 = "hello";

        // 使用 equals() 比较
        System.out.println(str1.equals(str2));  // 输出 false

        // 使用 equalsIgnoreCase() 比较
        System.out.println(str1.equalsIgnoreCase(str2));  // 输出 true
    }
}

3.3 字符串截取

public class StringSubstringExample {
    public static void main(String[] args) {
        String str = "Hello World";

        // 截取从位置 6 到结尾的部分
        String substr = str.substring(6);
        System.out.println(substr);  // 输出 "World"

        // 截取从位置 0 到位置 5 的部分
        String substr2 = str.substring(0, 5);
        System.out.println(substr2);  // 输出 "Hello"
    }
}

3.4 字符串替换

public class StringReplaceExample {
    public static void main(String[] args) {
        String str = "Hello World!";
        // 替换 "World" 为 "Java"
        String result = str.replace("World", "Java");
        System.out.println(result);  // 输出 "Hello Java!"
    }
}

3.5 字符串分割

public class StringSplitExample {
    public static void main(String[] args) {
        String str = "apple,banana,orange";
        String[] fruits = str.split(",");

        for (String fruit : fruits) {
            System.out.println(fruit);
        }
    }
}

4. 总结

  • 不可变性String 对象一旦创建后不可更改,每次对字符串的操作都会返回一个新的字符串。
  • 常用方法length()equals()substring()indexOf()replace() 等都是操作字符串的常用方法。
  • 性能优化:频繁拼接字符串时,建议使用 StringBuilderStringBuffer,因为它们是可变的,能够提高性能。

更多详细内容请关注其他相关文章!

发表回复 0

Your email address will not be published. Required fields are marked *