📅  最后修改于: 2023-12-03 15:01:34.845000             🧑  作者: Mango
Java中的字符串是一个对象,它属于java.lang
包,因此无需导入即可使用。String类是final类,不可被继承。
在Java中,可以用以下三种方式来创建一个字符串对象:
直接赋值
String str1 = "hello";
使用构造函数
String str2 = new String("world");
使用字符数组
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"
故而在处理字符串时,最好使用StringBuilder
或StringBuffer
类。这两个类是可变的,可以修改其中的字符串内容。
Java中的字符串常量池是一块固定的内存,保存了在编译期间生成的所有字符串常量。在创建字符串时,如果该字符串已经存在于常量池中,则不会再创建一个新的对象,而是将该字符串的引用指向原来的对象。
如下例所示:
String str1 = "hello"; // 创建了一个字符串对象,存储在常量池中
String str2 = "hello"; // 不会再创建一个新的对象,直接引用str1的对象
System.out.println(str1 == str2); // 输出true,因为str1和str2引用的是同一个对象
字符串是Java中非常常用的数据类型之一,目前介绍得还远远不够,需要不断地去深入学习和了解更多的内容。但是,熟练掌握以上常用的字符串方法和常见原理,已经可以为我们的开发工作提供帮助了。