StringBuffer StringBuilder
-
StringBuilder与StringBuilder联系
-
相同点:
-
1.两个类都是字符缓冲类
-
2.提供的方法是一样的
-
不同点
-
1.StringBuffer是线程安全的 操作效率低 jdk1.0发行
-
2.StringBuilder是线程非安全的 操作效率高 jdk1.5发行
-
推荐使用StringBuilder 操作效率高
StringBuffer字符串缓冲类容器具备的行为
-
增加
-
append(boolean b)可以添加任意类型的数据
insert(int offset, boolean b) 指定的索引值添加入对应的内容 -
删除
delete(int start, int end) 删除指定的开始索引到结束的索引值之间的内容
deleteCharAt(int index) 删除指定索引值的一个字符 -
修改
replace(int start, int end, String str)将指定开始到结束的索引值的内容修改为str
reverse()反转字符串 abc—> cbapublic static String trans(String str) { //将字符串转换为字符型的数组 char[] arr = str.toCharArray(); //从最后一位开始输出 for (int i = arr.length - 1; i >= 0; i--) { System.out.print(arr[i]); } //返回一个str return str; }
CharAt(int index, char ch) 把指定索引值的字符换成指定的字符
substring(int start, int end) 截取指定开始索引值到结束索引值的内容
ensureCapacity(int minimumCapacity)设置StringBuffer内部数组的长度 -
//一般不采用这种方法,直接在StringBuffer的构造函数上直接可以设置内部数组的长度
-
查
indexOf(String str, int fromIndex)从指定的索引值开始查找指定的字符串第一次出现的索引值
/* * 题目:求字串在整串中出现的次数 * str= "abcabcjavajavaaajava" * 求java在整串中出现的次数 * */ public class Dome10 { public static void main(String[] args) { String str= "abcabcjavajavaaajava"; getCount(str,"java"); } public static void getCount(String str,String target){ int count=0; int fromindex=0; //从指定的fromindex开始查找target出现的的索引值 /* * int String(target//要查找的目标,fromidex//从给定的索引值查起) * */ while((fromindex=str.indexOf(target,fromindex))!=-1){ count++; fromindex=fromindex+target.length();//每找一次from的值应当加目标字符串的长度 } System.out.println(target+"出现的次数为"+count); }
lastIndexOf(String str, int fromIndex)查找指定的字符串最后出现的索引值,并且指定查找的索引值
capacity()查找当前字符数组的长度length();查找存在几个字符
charAt(int index) 返回指定索引值的字符元素