Java18 StringBuffer与StringBuilde
2018-12-28 本文已影响0人
第二套广播体操
StringBuffer
字符串的组成原理就是通过该类实现 可以对字符串进行增删改查
StringBuffer 是一个容器 很多方法与String相同
StringBuffer 可变长度 构造方法中可以自己设置数组长度 也可是自增 (影响内存)
线程安全,可变的字符序列。 字符串缓冲区就像一个String中的类 ,可以修改。 在任何时间点,它包含一些特定的字符序列,但可以通过某些方法调用来更改序列的长度和内容。
方法:
增
StringBuffer append(int i); 可以填入多种类型 包括对象。byte short不行
StringBuffer insert(int index, int i);根据坐标插入
删
StringBuffer delete(int start ,int end); 取索引一段带前后位置的包括前不包括后
StringBuffer delete(int index);
改
StringBuffer replace(int start,int end,String str);
StringBuffer reverse(); 导致该字符序列被序列的相反代替。
查
int indexof(String s);返回索引
设定长度
void setLength(int length);只显示长度内的字符串
小例子:
public class StringBufferDemo1 {
public static void main(String[] args) {
String str=StringBuffertest();
System.out.println(str);
}
private static String StringBuffertest() {
StringBuffer sb=new StringBuffer().append("a").
append("b").append("c");
//append方法返回的是Stringbuffer类型 可以通过返回的对象继续调用方法
return sb.toString();
}
}
1.通过缓冲区 将要打印的矩形元素*进行储存后,并一次性返回
2.将int数组转换成字符串格式为 [23,42,12]
public class StringBufferDemo2 {
public static void main(String[] args) {
String s=draw(6,4);
System.out.println(s);
}
private static String draw(int row, int col) {
StringBuffer sb=new StringBuffer();
for (int i = 0; i <row; i++) {
for (int j = 0; j <col; j++) {
sb.append("*");
}
sb.append("\n");
}
return sb.toString();
}
}
2
public class StringBufferDemo3 {
public static void main(String[] args) {
int[] arr={10,12,31,15};
String str=toIntString(arr);
System.out.println(str);
}
private static String toIntString(int[] arr) {
StringBuffer sb=new StringBuffer();
sb.append("[");
for (int i = 0; i <arr.length; i++) {
if (i!=arr.length-1)
{sb.append(arr[i]+",");}else {sb.append(arr[i]+"]");}
}
return sb.toString();
}
}
StringBuilder
不同步 单线程使用快 推荐使用StringBuilder 可以自己在方法上加锁同步