字符串常见操作
1. 字符串的比较
通常在比较两个int 型变量时,我们使用 = = 完成,但是如果在String 类上使用 == ,就会产生错误。
举例:
public class StringDemo3 {
public static void main(String[] args) {
String str2 = "Hello";
String str3 = "Hello";
System.out.println(str3 == str2);
String str4 = new String("Hello");
String str5 = new String("Hello");
System.out.println(str4 == str5);
}
}
在使用直接赋值和使用构造方法这两种不同的方式创建的String对象,即使创建的内容是一样的但比较的结果却是不同的。
这是因为在String 类中这两种创建方式在内存分布上是有差异的,使用直接赋值方法创建String是把创建的对象放在字符常量池中,str2 和str3 指向的是同一个对象。而对于使用 String str4 = new String(“Hello”) 这种方式创建对象是在堆上开辟了两个空间存了两份“Hello”。所以String 类中使用 == 比较的并不是字符串内容,而是比较两个引用是否指向同一个对象。
方法1:
方法2:
1.1 equals 方法
equals方法是区分大小写的比较。
1.2 equalsIgnoreCase 方法
equalsIgnoreCase方法是不区分大小写的方法。
1.3 compareTo 方法
compareTo 方法 是比较两个字符串大小。
相等:返回0
小于:返回一个小于0 的 int 型
大于:返回一个大于0 的 int 型
unicode 字符表:
2. 字符串查找
2.1 contains 方法
2.2 indexOf 方法
从头开始查找指定字符串的位置,找到了返回位置的开始索引,找不到返回-1.
查找时判断开头、结尾:
3. 字符串替换
replacAll 方法是全部替换,replaceFirst 方法是只替换第一个出现的字符串。
字符串替换不是修改当前的字符而是产生一个新的字符串。
4. 字符串拆分
split 方法
注意: 一些特殊字符作为分割符时要加上转义字符"“或者”\"。
5. 字符串截取
subString 方法
注意:
- 索引从0开始
- subString(3,17)表示包含下标为3的元素但是不包含下标为17的元素。
6. 其他方法
str.trim() 去掉字符串中的左右空格,保留中间空格
str.toUpperCase() 字符串转大写
str.toLowerCase() 字符串转小写
str.intern() 字符串入字符常量池
str.length() 取得字符串长度
str.isEmpty() 判断字符串是否为空字符串,长度是否为0