📜  Java-字符串类(1)

📅  最后修改于: 2023-12-03 15:01:34.845000             🧑  作者: Mango

Java-字符串类

Java中的字符串是一个对象,它属于java.lang包,因此无需导入即可使用。String类是final类,不可被继承。

创建字符串对象

在Java中,可以用以下三种方式来创建一个字符串对象:

  1. 直接赋值

    String str1 = "hello";
    
  2. 使用构造函数

    String str2 = new String("world");
    
  3. 使用字符数组

    char[] arr = {'J', 'a', 'v', 'a'};
    String str3 = new String(arr);
    
字符串常用方法
  • length():获取字符串的长度

  • charAt(int index):获取指定位置的字符

  • equals(String str):比较字符串的内容是否相等

  • equalsIgnoreCase(String str):忽略大小写比较字符串的内容是否相等

  • compareTo(String str):比较字符串的字典顺序,返回值为int类型

  • indexOf(char c):获取字符在字符串中第一次出现的位置

  • indexOf(String str):获取字符串在字符串中第一次出现的位置

  • lastIndexOf(char c):获取字符在字符串中最后一次出现的位置

  • lastIndexOf(String str):获取字符串在字符串中最后一次出现的位置

  • substring(int beginIndex):获取从指定位置开始到字符串结尾的子字符串

  • substring(int beginIndex, int endIndex):获取从指定位置开始到指定位置结束的子字符串

  • toUpperCase():将字符串全部转换为大写

  • toLowerCase():将字符串全部转换为小写

  • replace(char oldChar, char newChar):用一个新的字符替换字符串中出现的所有旧字符

  • replace(CharSequence target, CharSequence replacement):用一个新的字符串替换字符串中出现的所有旧字符串

  • split(String regex):使用正则表达式将字符串分割成字符串数组

  • trim():去掉字符串开头和结尾的空格

字符串不可变性

由于字符串的不可变性,即一旦创建了一个字符串对象便不能修改,因此每个字符串方法都是返回一个新的字符串对象。

如下例所示:

String str = "hello";
str.toUpperCase(); // 返回新的字符串对象,原字符串仍为"hello"

故而在处理字符串时,最好使用StringBuilderStringBuffer类。这两个类是可变的,可以修改其中的字符串内容。

字符串常量池

Java中的字符串常量池是一块固定的内存,保存了在编译期间生成的所有字符串常量。在创建字符串时,如果该字符串已经存在于常量池中,则不会再创建一个新的对象,而是将该字符串的引用指向原来的对象。

如下例所示:

String str1 = "hello"; // 创建了一个字符串对象,存储在常量池中
String str2 = "hello"; // 不会再创建一个新的对象,直接引用str1的对象
System.out.println(str1 == str2); // 输出true,因为str1和str2引用的是同一个对象
总结

字符串是Java中非常常用的数据类型之一,目前介绍得还远远不够,需要不断地去深入学习和了解更多的内容。但是,熟练掌握以上常用的字符串方法和常见原理,已经可以为我们的开发工作提供帮助了。