StringBuffer类:
存储字符的容器
笔试题目:使用StringBuffer无参的构造函数创建一个对象时,默认的初始容量为多少,如果长度不够,自动增长多少
答:使用StringBuffer无参的构造函数创建一个对象时,默认的初始容量为16,长度不够时,自动增长1倍
StringBuffer类的方法:
一、添加方法
1.append(boolean b):可以添加任意类型数据
StringBuffer sb=new StringBuffer();
sb.append("abc");
System.out.println(sb);
2.insert(int offset,boolean b):指定插入的索引值,插入对应的内容
StringBuffer sb=new StringBuffer();
sb.append("abc");
sb.insert(2, "小明");
System.out.println(sb);
二、删除方法
1.delete(int start,int end):根据指定的开始与结束索引值删除
StringBuffer sb=new StringBuffer();
sb.append("abc");
sb.delete(0, 1);
System.out.println(sb);
2.deleteCharAt(int index):根据指定的索引值删除一个字符
StringBuffer sb=new StringBuffer();
sb.append("hello");
sb.deleteCharAt(3);
System.out.println(sb);
三、修改方法
1.ensureCapasity(int minimumCapacity):指定StringBuffer内部字符长度
2.replace(int start,int end,String str):替换
StringBuffer sb=new StringBuffer();
sb.append("hello");
sb.replace(0, 2, "xyz");
System.out.println(sb);
3.reverse():翻转字符串缓冲类的内容
StringBuffer sb=new StringBuffer();
sb.append("hello");
sb.reverse();
System.out.println(sb);
4.setCharAt(int index,char ch):替换指定字符
StringBuffer sb=new StringBuffer();
sb.append("hello");
sb.setCharAt(2, 'e');
System.out.println(sb);
5.substring(int start,int end):根据指定索引值截取字符串
StringBuffer sb=new StringBuffer();
sb.append("hello");
String str2=sb.substring(0, 3);
System.out.println(str2);
四、查看方法
1.indexOf(String str,int fromIndex):查找指定字符串第一次出现的索引值
StringBuffer sb=new StringBuffer();
sb.append("helloworldhello");
System.out.println(sb.indexOf("hello"));
2.capacity():查看当前字符长度
StringBuffer sb=new StringBuffer();
sb.append("helloworldhello");
System.out.println(sb.capacity());
3.charAt(int index):根据指定索引值查找字符
StringBuffer sb=new StringBuffer();
sb.append("helloworldhello");
System.out.println(sb.charAt(5));
4.lastIndex(String str):查找指定字符串最后一次出现的索引值
StringBuffer sb=new StringBuffer();
sb.append("helloworldhello");
System.out.println(sb.lastIndexOf("hello"));
5.length():存储字符的长度
StringBuffer sb=new StringBuffer();
sb.append("helloworldhello");
System.out.println(sb.length());
6.toString():把字符串缓冲类的内容转换成字符串返回
StringBuffer sb=new StringBuffer();
sb.append("helloworldhello");
System.out.println(sb.toString());
StringBuffer与StringBuilder的相同与不同:
相同点:
1.两个类都是字符串缓冲类
2.两个类方法都是一致的
不同点:
1.StringBuffer是线程安全的,StringBuilder是线程非安全。StringBuffer操作效率低,StringBuilder操作效率高
2.StringBuffer是jdk1.0出现的,StringBuilder是jdk1.5出现的
推荐使用:StringBuilder,因为操作效率高