StringBuilder常用
一、StringBuilder 常用StringBuilder是可变字符串修改内容不会新建字符串对象append () 追加内容最常用在末尾添加字符、字符串、数字、布尔值StringBuilder sb new StringBuilder();sb.append(“Hello”);sb.append(123);// sb结果Hello123insert (下标内容) 在指定位置插入第一个参数是索引位置第二个是要插入的数据StringBuilder sb new StringBuilder(“abc”);sb.insert(1,“X”);// 在索引1位置插入X结果aXbcdelete (起始索引结束索引) 删除一段字符左闭右开包含起始不包含结束下标StringBuilder sb new StringBuilder(“abcde”);sb.delete(1,3);// 删除下标1、2结果adedeleteCharAt (索引) 删除单个字符StringBuilder sb new StringBuilder(“abc”);sb.deleteCharAt(1);// 删除下标1的b结果acreplace (起始结束新字符串) 替换一段字符StringBuilder sb new StringBuilder(“abcde”);sb.replace(1,3,“66”);// 下标1~2替换成66结果a66dereverse () 字符串反转原地颠倒字符顺序sb.reverse();charAt (索引) 获取指定下标字符和 String 的 charAt 一样char c sb.charAt(0);length () 获取字符个数int len sb.length();toString () 把 StringBuilder 转为 String 字符串String str sb.toString();setCharAt (索引字符) 修改指定位置字符直接修改某个下标上的字符StringBuilder sb new StringBuilder(“abc”);sb.setCharAt(0,‘M’);// 结果MbcString不可变修改就新建对象没有 append、reverse 等方法StringBuilder可变上面这些方法大多直接修改自身对象不是返回新对象原地修改改自己返回当前 sb 对象不是新建对象append()insert()delete()deleteCharAt()replace()reverse()setCharAt()返回【新内容 / 新对象】charAt(index)返回单个 char基本数据类型不是对象length()返回int 数字基本类型读取长度不改 sbtoString()返回全新的 String 对象二、StringBuffer 对比-StringBuffer同样拥有reverse()方法功能和 StringBuilder 一致-StringBuffer是线程安全效率低StringBuilder 非线程安全性能更高单线程优先使用 StringBuilder。