要点提示:
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。