String 类的特点:
字符串对象一旦被初始化就不会被改变。
String s=”abc”; “abc”存储在字符串常量池(缓冲区)中。池中没有就建立,池中有就直接用。
String s=”abc”;在常量池中创建一个对象
String s1=new String (“abc”);在堆内存中创建两个对象。所以s和s1地址不同。
String类覆盖了Object类的equals,比较的是两个String对象的内容(两个对象不为空)。
String s =new String (); 等效于(地址不相同) String s=””; 不等效于String s=null;
字符串功能分类:
1,获取
1.1,获取字符串中字符的个数(长度)
intlength();
1.2,根据位置获取字符
charcharAt(int index);
1.3,根据字符获取在字符串中的第一次出现的位置。*
intindexOf(int ch)
intindexOf(int ch,int fromIndex):从指定位置进行ch的查找第一次出现的位置
intindexOf(String str)
intindexOf(String str,int fromIndex)
intlastIndexOf(int ch)返回指定字符在字符串中最后一次出现的位置。
intlastIndexOf(int ch, int fromIndex) 从指定的索引处开始进行后向搜索,返回最后一次出现的指定字符在此字符串中的索引。
intlastIndexOf(String str)
intlastIndexOf(String str, int fromIndex)
1.4获取字符串中的一部分字符串。也叫子串。
Stringsubstring(int beginIndex, int endIndex) 该子字符串从指定的 beginIndex 处开始,一直到索引endIndex - 1 处的字符
Stringsubstring(int beginIndex)
2,转换
2.1将字符串变成字符串数组。(字符串切割)
String[]split(String regex)
2.2将字符串变成字符数组。
char[] toCharArray()
2.3将字符串变成字节数组。
byte[] getBytes();
2.4将字符串中的字母转成大小写
String toUpperCase() 大写
String toLowCase() 小写
2.5将字符串中的内容进行替换
String replace(char oldChar, char newChar)
String replace(String s1 ,String s2)
2.6将字符串两端的空格去除
String trim();
2.7将字符串进行连接
String concat(String str)
2.8 将各种基本类型变成字符串。(全是静态方法)
static String valueOf()
3 判断
3.1 两个字符串内容是否相同?
boolean equals(Object obj)----区分大小写
Boolean equalsIgnoreCase(Obj)---忽略大小写比较字符串
3.2字符串中是否包含指定字符串。
boolean contain(String str)
3.3字符串是否以指定字符串开头。是否以指定字符串结尾。
boolean startsWith(String str)
boolean endsWith(String str)
4 比较
4.1按字典顺序比较两个字符串(返回两个字符ascaii相减的值)
int compareTo(String anotherString)
intern() 对字符串池进行维护。---??