1.在插入数据量比较大的情况下,选择可变字符串序列插入效率会更高
格式:StringBuilder builder = new StringBuilder();
package hello;
import java.util.Date;
import java.util.regex.Pattern;
public class Hello {
public static void main(String[] args) {
String str = ""; //普通空字符串创建
long startTime = System.currentTimeMillis();
for(int i = 0;i < 10000;i++){
str = str + i; //会在内存中增加新的String实例,增大内存开销
}
// str.insert(0,"a");
long stopTime = System.currentTimeMillis();
long time = stopTime - startTime;
System.out.println(time);
//System.out.println(str);
StringBuilder builder = new StringBuilder(); // 创建可变字符序列,内存开销小
long startTime2 = System.currentTimeMillis();
for(int i = 0;i < 10000;i++){
builder.append(i);
}
//builder.delete(0,3);
long stopTime2 = System.currentTimeMillis();
long time2 = stopTime2 - startTime2;
System.out.println(time2);
//System.out.println(builder);
//两者时间差距会很大,当然在插入小量的字符,时间几乎一样
//以下是运行结果
},
}
2.在指定位置插入
package hello;
import java.util.Date;
import java.util.regex.Pattern;
public class Hello {
public static void main(String[] args) {
StringBuilder builder = new StringBuilder();
for(int i = 0;i < 10;i++){
builder.append(i);
}
System.out.println(builder); //显示生成的字符串
builder.insert(0, "a");
System.out.println(builder); //显示在指定位置插入
}
}
//以下是结果
3.从指定位置删除[start=stop则表示不删除任何字符]
package hello;
import java.util.Date;
import java.util.regex.Pattern;
public class Hello {
public static void main(String[] args) {
StringBuilder builder = new StringBuilder();
for(int i = 0;i < 10;i++){
builder.append(i);
}
System.out.println(builder); //显示生成的字符串
builder.delete(0,2); //删除从start位置到end-1位置的字符
System.out.println(builder); //显示在删除后的字符串
}
}