要点提示: StringBuilder和StringBuffer类似于String类,区别在于String类是不可变的。

​ 一般只要使用字符的地方都可以使用StringBuilder和StringBuffer类,可以给一个StringBuilder和StringBuffer类中 添加、插入或追加 新的内容,而String不行。

多任务并发访问,就是用StringBuffer,因为这种情况下需要同步以防止StringBuffer崩溃。

单任务访问,使用StringBuilder更有效果。

java.lang.StringBuilder

+StringBuilder()                    //构建一个容量为16的字符串构建器
+StringBuilder(capacity: int)        //构建一个指定容量的字符串构建器
+StringBuilder(s: String)           //构建一个指定字符的字符串构建器
+append(data: char[]): StringBuilder //追加一个字符数组到字符串构建器 +append(data: char[],offset: int,len: int): StringBuilder//追加data中的子数组到字符串构建器 +append(v: aPrimitiveType): StringBuilder//将一个基本类型值作为字符串追加到字符串构建器中 +append(s: String): StringBuilder//追加一个字符串到字符串构建器 +delete(startIndex: int,endIndex: int): StringBuilder//删除从startIndex到endIndex-1的字符 +deleteCharAt(indexL int): StringBuilder//删除给定索引位置的字符 +insert(index:int,data: char[],offset: int,len:int): StringBuilder//在字符串构建器的给定索引位置插入数组data的子数组 +insert(offset: int,data: char[]): StringBuilder//向构建器偏移位置插入数据 +insert(offset: int,b:a: PrimitiveType): StringBuilder//向该字符串构建器插入一个转换为字符串的值 +replace(startIndex: int,endIndex: int,s: String): StringBuilder//将该构建器从startIndex到endIndex-1的位置的字符替换为给定的字符串 +reverse(): StringBuilder//倒置构建器中的字符 +setCharAt(index: int,ch: char): StringBuilder//将该构建器的指定索引位置设置为新的字符

​ StringBuilder类提供了几个重载方法,可以将boolean、char、char数组、double、float、int、long和String类型值追加到字符串构建器。例如下面的代码将字符串和字符追加到stringBuilder,构成新的字符串"Welcome to Java"

StringBuilder stringBuilder=new StringBuilder(); stringBuilder.append("Welcome"); stringBuilder.append(" "); stringBuilder.append("to"); stringBuilder.append(" "); stringBuilder.append("Java");

​ StringBuilderl类也包括几个重载的方法,可以可以将boolean、char、char数组、double、float、int、long和String类型值追加到字符串构建器。

stringBuilder.insert(11,"HTML and");

接上条代码,新的stringBuilder就变成了"Welcome to HTML and Java"。

​ 也可以使用两个delete方法将字符从构建器中的字符串中删除,使用reverse方法导致字符串,使用replace方法替换字符串中的字符,或者使用setCharAt方法在字符串中设置一个新字符。

假设应用下面方法前stringBuilder包含的是"Welcome to Java"。

stringBuilder.delete(8,11);//将构建器变为Welcome Java stringBuilder.deleteCharAt(8);//将构建器变为Welcome o Java stringBuilder.reverse();//将构建器变为avaJ ot emocleW stringBuilder.replace(11,15,"HTML");//将构建器变为Welcome to HTML stringBuilder.setCharAt(0,'w');将构建器变为welcome to Java

未完待续............

StringBuilder-----修改StringBuilder中的字符串要点提示:StringBuilder和StringBuffer类似于String类,区别在于String类是不可变的。​ 一般只要使用字符的地方都可以使用StringBuilder和StringBuffer类,可以给一个StringBuilder和StringBuffer类中添加、插入或追加新的内容,而String不行。多... 获取的通知消息存在数据库 , 不同语言的用户获取到的是对应语言的通知消息,和前端沟通无果; 希望前端能保留各种通知类型对应语言,我传递通知code值,前端根据code加载不同的消息内容,并拼接参数; 前端表示:打卡,口头瓦鲁!! 不愧是懒得计算样式和背景颜色让我在后端增加字体样式,图标样式名称,背景样式名称,字体颜色名称,这些字段在json里的前端; 只能自己来了; 由于只是demo这里就用map替代i18n的配置文件了,原理是一样的; public static void main(Str 3 int compareTo(String anotherString) 按字典顺序比较两个 字符串 。 4 int compareToIgnoreCase(String str) 按字典顺序比较两个 字符串 ,不考
1.String是不可变的,但是对 字符串 进行拼接后生成的是一个新的String对象 String str1="abc"; System.out.println(str1.hashCode()); str1=str1+"123"; System.out.println(str1.hashCode()); 通过拼接前后的str1 的哈希值做比较,哈希值不同所以证明前后生成的是不同对象,生成不同对象后,前对象的关联等会被抛弃,等待被清掉。 StringBuilder :非线程安全,单线程好用。
String类 主要有三种: (1) replace(char oldChar, char newChar):将所有与oldChar相同的字符替换为newChar,返回新的 字符串 ,原 字符串 不改变。 (2) replaceAll(String regex, String replacement) :将所有与regex相同的 字符串 替换为replacement,返回新的 字符串 ,原 字符串 不改变。 (3) replaceFirst(String regex, String replacement):将第一个与re..
if (tempDesc.length()>10){ StringBuilder sb = new StringBuilder (tempDesc);//构造一个 StringBuilder 对象 sb.insert(10, "\n");//在...
string、 stringbuilder 和stringbuffer都是 Java 用于处理 字符串 的类。 string是不可变的 字符串 类,一旦创建就不能被 修改 。每次对string进行 修改 时,都会创建一个新的string对象。因此,在需要频繁 修改 字符串 的情况下,使用string会导致性能问题。 stringbuilder 和stringbuffer都是可变的 字符串 类,可以在原有 字符串 的基础上进行 修改 。它们的主要区别在于线程安全性:stringbuffer是线程安全的,而 stringbuilder 是非线程安全的。因此,在多线程环境下,应该使用stringbuffer。 总的来说,如果需要频繁 修改 字符串 ,并且在多线程环境下使用,应该使用stringbuffer;如果在单线程环境下使用,或者只需要进行少量的 字符串 修改 ,可以使用 stringbuilder 。而如果不需要 修改 字符串 ,应该使用string。