String类的常用方法总结_threelifeadv的博客-优快云博客_string类的常用方法
一、String,StringBuffer,StringBuilder的区别
java把String类声明的final类, 底层的byte数组被final修饰,对象创建后不可修改,
StringBuffer和StringBuilder都继承自抽象类AbstractStringBuilder;StringBuffer底层也是一个byte数组,不被final修饰,默认初始容量是16,其中的append方法底层会确保数组容量,不够则进行数组拷贝,进行扩容。在使用StringBuffer的过程中,要尽可能的减少底层数组扩容的次数,给一个大一点的初始化容量。
StringBuffer sb = new StringBuffer();
sb.append("a");
sb.append(3.14);
StringBuilder和StringBuffer的实现代码几乎一样,StringBuffer是线程安全的,StringBuilder是线程不安全的。
二、String类创建对象
==用于比较对象的地址
String name1 ="abc";
String name2 ="abc";
System.out.println("name1==name2"); //true 因为name1和name2指向常量池中的对象
String name1 =new String("abc");
String name2 =new String("abc");
System.out.println("name1==name2"); //false
//name1和name2指向两个不同的String对象,只是这两个对象内部的value值指向相同的char数组。
三、String的常用方法
1、获取字符串长度:str.length();
2、获取字符在字符串中出现的位置:
str.indexOf(String str);从头开始查找str在字符串中第一次出现的位置;
str.indexOf(String str,int fromIndex);从下标fromIndex处开始开始查找str在字符串中第一次出现的位置
3、获取字符串中某一个位置的字符:
str.charAt(int index);查找字符串中下标为index位置出现的字符串
4、截取字符串:
str.substring(fromIndex,endIndex); [fromIndex,endIndex)
6、字符串的比较:
int num = str.compareTo(String str1);若当前对象比参数大则返回正整数,反之返回负整数,相等返回0。
7、字符串连接:
str2 = str.concat(String str1); 用concat连接两个字符城成为一个新的字符串。
8、字符串中字符的大小写转换:
小写转大写:str.toUpperCase();
大写转小写:str.toLowerCase();
9、字符串中字符的替换:
str.replace(oldStr,newStr); 用新的字符代替就得字符。
10、字符串中清除空格:
str.trim(); 清除字符串str两侧的空字符串。
11、字符传中分割字符串为数组:
str.split(String str1); 用str1将字符串str分割成数组。