String,StringBuffer,StringBuilder三者的使用方法和区别
本博客将通过讲解 : 三者常用的方法,应用场景,区别
应用场景:
String适用于少量的字符串操作的情况
StringBuilder适用于单线程下在字符缓冲区进行大量操作的情况
StringBuffer适用多线程下在字符缓冲区进行大量操作的情况
1.String的方法
参考博客:https://www.cnblogs.com/liujiquan/p/7808501.html
1 length()字符串的长度 2 charAt()截取一个字符 3 getchars()截取多个字符并由其他字符串接收 4 getBytes()将字符串变成一个byte数组 5 toCharArray()将字符串变成一个字符数组 6 equals()和equalsIgnoreCase()比较两个字符串是否相等,前者区分大小写,后者不区分 7 startsWith()和endsWith()判断字符串是不是以特定的字符开头或结束 8 toUpperCase()和toLowerCase()将字符串转换为大写或小写 9 concat() 连接两个字符串 10 trim()去掉起始和结束的空格 11 substring()截取字符串 12 indexOf()和lastIndexOf()前者是查找字符或字符串第一次出现的地方,后者是查找字符或字符串最后一次出现的地方 13 compareTo()和compareToIgnoreCase()按字典顺序比较两个字符串的大小,前者区分大小写,后者不区分 14 replace() 替换
2.StringBuffef,StringBuilder方法
1.toString()方法:将StringBuffer,StringBuilder对象转换为String字符串
常用在需要输出的时候,因为StringBuffer和StringBuilder的对象不能直接输出
StringBuffer s1 = new StringBuffer(); s1.toString();
2.append()方法:用于在字符串的后面追加字符串,也可以用来初始化
StringBuffer s = new StringBuffer(); s.append("sad");
3.charaAt(i)方法:返回指定索引位置的字符,索引从0开始
StringBuffer s = new StringBuffer(); s.append("sad"); System.out.println(s.charAt(2));
4.deleteCharAt(i)方法:删除指定索引位置的字符
StringBuffer s = new StringBuffer(); s.append("sad"); s.deleteCharAt(1); System.out.println(s);//输出为:sd
5.delete()方法:删除从开始索引到结束索引的字符串
StringBuffer s = new StringBuffer(); s.append("sad"); s.delete(0,1); System.out.println(s);//输出为:ad
6.insert()方法:在指定索引位置之前插入字符串
StringBuffer s = new StringBuffer(); s.append("sad"); s.insert(0,'t'); System.out.println(s);//输出为:tsad
7.indexOf()方法:返回指定字符串的开始字符索引位置,还可以从某个字符索引位置开始向后匹配,没有找到匹配的就会返回-1
StringBuffer s = new StringBuffer();
s.append("aaabbb");
System.out.println(s.indexOf("ab"));//输出为:2 //还可从指定位置开始匹配 System.out.println(s.indexOf("ab",3));//输出为:-1 System.out.println(s.indexOf("tt"));//输出为:-1
8.lastIndexOf()方法:和indexOf()的用法一样,只不过是从后往前匹配,也支持从指定索引开始从后往前去匹配
StringBuffer s = new StringBuffer(); s.append("aaabbb"); System.out.println(s.lastIndexOf("ab"));//输出为:2 //还可从指定位置开始从后向前匹配 System.out.println(s.lastIndexOf("ab",4));//输出为:2 System.out.println(s.lastIndexOf("tt"));//输出为:-1
9.reverse()方法:反转字符串
StringBuffer s = new StringBuffer(); s.append("aaabbb"); System.out.println(s.reverse());//输出为:bbbaaa
10.length()方法:返回字符串的长度
System.out.println(s1.length());
2.String、StringBuffer、StringBuilder的区别
1.从性能、速度方面
StringBuilder > StringBuffer > String
2.从线程安全的角度去看
StringBuffer是线程安全的,而StringBuilder是线程不安全的

浙公网安备 33010602011771号