概述
-
字符串是常量,创建之后不可改变。
-
字符串字面值存储在字符串池中,可以共享。
-
String s = "Hello"; 产生一个对象,字符串池中存储。
-
String s = new String("Hello"); 产生两个对象,堆、池各存储一个。
public class Application {
public static void main(String[] args) {
String name = "Hello";//"Hello"常量存储在字符串池中
name = "World";//"World"赋值给name变量,给字符串赋值时,并没有修改数据,而是重新开辟空间
String name2 = "World";//name 和 name2共享"World"的地址
//演示字符串的另一种创建方式,new String();
String str1 = new String("Java");//会在字符串池和堆里边创建两个对象
String str2 = new String("Java");
System.out.println(str1==str2);//false "=="比的是地址
System.out.println(str1.equals(str2));//true equals()比的是数据
}
}
常用方法
-
public int length():返回字符串的长度
-
public char charAt(int index):根据下标获取字符
-
public boolean contains(String str):判断当前字符串中是否包含str
-
public char[] toCharArray():将字符串转换成数组。
-
public int indexOf(String str):查找str首次出现的下标,存在,则返回该下标;不存在,则返回-1。
-
public int lastIndexOf(String str):查找字符串在当前字符串中最后一次出现的下标索引。
-
public String trim():去掉字符串前后的空格。
-
public String toUpperCase():将小写转成大写。toLowerCase():将大写转成小写。
-
public boolean endWith(String str):判断字符串是否以str结尾。startWith(String str):判断字符串是否以str开头。
-
public String replace(char oldChar, char newChar);将旧字符串替换成新字符串
-
public String[] split(String str):根据str做拆分。