构建StringBuilder实例
StringBuilder和StringBuffer都是可变的字符序列(即自身字符序列可被修改)
StringBuilder是非线程安全的,StringBuffer是线程安全的
涉及线程安全情况下通常选择StringBuffer;
StringvBuilder的执行效率比StringBuffer跟高
StringBuilder对象创建
public StringBuilder()
public StringBuilder(int capacity)
public StringBuilder(String str)
public StringBuilder(CharSequence seq)
package com.ax;
public class TestStringBuilder {
public static void main(String[] args) {
StringBuilder builder = new StringBuilder(8);
System.out.println(builder.toString());
System.out.println("长度:" + builder.length());//长度:0
System.out.println("默认容量:" + builder.capacity());//默认容量:8
StringBuilder builder1 = new StringBuilder("大家好!");
builder1 = builder1.append(123);
System.out.println(builder1);//大家好!123
}
}
StringBuilder常用方法
public StringBuilder append(Object obj)
public StringBuilder delete(int start,int end)
public StringBuilder deleteCharAt(int index)
public StringBuilder insert(int offset,Object obj)
public StringBuilder replace(int start,int end,String str)
工具类:
package com.ax.tools;
public class StringManagement {
public static String removeStringFromStartToEnd(String res,int start,int end){
StringBuilder builder = new StringBuilder(res);
builder.delete(start, end) ;
return builder.toString();
}
public static String replaceTargetFromStartToEnd(String res,String replace){
StringBuilder builder = new StringBuilder(res);
//判断是否为等号
if (builder.toString().contains("=")){
builder.replace(builder.indexOf("="),builder.indexOf("=")+1,replace);//如果为等号就将其替换,
return StringManagement.replaceTargetFromStartToEnd(builder.toString(), replace);//循环判断是否为等号
}
return builder.toString();
}
}
测试类:
package com.ax.test;
import com.ax.tools.StringManagement;
public class TestStringBuilder {
public static void main(String[] args) {
StringBuilder builder = new StringBuilder(8);
System.out.println(builder.toString());//
System.out.println("长度:" + builder.length());//长度:0
System.out.println("默认容量:" + builder.capacity());//默认容量:8
StringBuilder builder1 = new StringBuilder("大家好!");
builder1 = builder1.append(123);
System.out.println(builder1);//大家好!123
System.out.println( StringManagement.removeStringFromStartToEnd("喜羊羊与灰太狼",2,4));//喜羊灰太狼
String target = "{name=\"king\",address=\"人民大街\",age=23,email=\"java@163.com\"}";
System.out.println(StringManagement.replaceTargetFromStartToEnd(target,":"));
//{name:"king",address:"人民大街",age:23,email:"java@163.com"}
}
}
工具类:
package com.ax.tools;
public class StringManagement {
public static String insertObjectOn(String res,String tag,Object insertObj){
StringBuilder builder = new StringBuilder(res);
if (builder.toString().contains(tag)){//如果它包含给定的tag
int insertTag = builder.indexOf(tag)+4;//查找位置,并在此处插入insertObj
builder.insert(insertTag,insertObj);//插入insertObj
return StringManagement.insertObjectOn(builder.toString(), tag,insertObj);//循环调用,如果都替换完成,则会找不到结束替换
}
return builder.toString();
}
}
测试类
package com.ax.test;
import com.ax.tools.StringManagement;
public class TestStringBuilder {
public static void main(String[] args) {
/**将此字符串中age:没有值的插入默认值18
[{name:\"king\",age:,address=\"人民大街\"},
{name:\"lucy\",age:,address=\"人民大街\"},
{name:\"tom\",age:,address=\"人民大街\"},
{name:\"rose\",age:,address=\"人民大街\"}
]
*/
String target1 = "[{name:\"king\",age:,address=\"人民大街\"},\r\n" +
" {name:\"lucy\",age:,address=\"人民大街\"},\r\n" +
" {name:\"tom\",age:,address=\"人民大街\"},\r\n" +
" {name:\"rose\",age:,address=\"人民大街\"},\r\n" +
" ]";
System.out.println(StringManagement.insertObjectOn(target1,"age:,",18));
/**
[{name:"king",age:18,address="人民大街"},
{name:"lucy",age:18,address="人民大街"},
{name:"tom",age:18,address="人民大街"},
{name:"rose",age:18,address="人民大街"},
]
*/
}
}
版权声明:本文为m0_46359448原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。