在程序开发过程中,我们常常碰到字符串连接的情况,方便和直接的方式是通过"+"符号来实现,但是这种方式达到目的的效率比较低,且每执行一次都会创建一个String对象,即耗时,又浪费空间。使用StringBuilder类就可以避免这种问题的发生,下面就Stringbuilder的使用做个简要的总结:
public static void main(String[] args) {
StringBuilder stb=new StringBuilder();
System.out.println(stb.hashCode());
stb.append("h").append("ss").append(2);
System.out.println(stb.hashCode());
//用+来实现
String a="hell";
System.out.println(a.hashCode());
a=a+"hh";
System.out.println(a.hashCode());
}
结果
1625635731
1625635731
3198781
-1220935427
- 创建StringBuilder对象
StringBuilder stb=new StringBuilder();
- append():字符串连接
stb.append("h").append("ss").append(2);
//return hss2
- toString():返回一个与构建器或缓冲器内容相同的字符串
System.out.println(stb.toString());
//return hss2
- appendcodePoint(int cp):追加一个代码点,并将其转换为一个或两个代码单元并返回this
System.out.println(stb.appendCodePoint(2));
//return hss2
- setCharAt(int i, char c):将第 i 个代码单元设置为 c(可以理解为替换)
stb.setCharAt(0,'8');
System.out.println(stb);
//return 8ss2
- insert(int offset, String str)/insert(int offset, Char c):在指定位置之前插入字符(串)
System.out.println(stb.insert(1,'5'));
System.out.println(stb.insert(2,"hello"));
//return 85ss2
//return 85helloss2
- delete(int startIndex,int endIndex):删除起始位置(含)到结尾位置(不含)之间的字符串
System.out.println(stb.delete(0,2));
//return helloss2