1、认识StringBuffer
1.1字符串连接 操作append
append方法返回StringBuffer类的实例化类对象。
public class StringBufferDemo01{ public static void main(String args[]){ StringBuffer buf = new StringBuffer() ; // 声明StringBuffer对象 buf.append("Hello ") ; // 向StringBuffer中添加内容 buf.append("World").append("!!!") ; // 可以连续调用append()方法 buf.append("\n") ; // 添加一个转义字符 buf.append("数字 = ").append(1).append("\n") ; // 添加数字 buf.append("字符 = ").append('C').append("\n"); // 添加字符 buf.append("布尔 = ").append(true) ; // 添加布尔值 System.out.println(buf) ; // 直接输出对象,调用toString() } };验证StringBuffer的内容可以修改,通过引用传递的方式来完成。
public class StringBufferDemo02{ public static void main(String args[]){ StringBuffer buf = new StringBuffer() ; // 声明StringBuffer对象 buf.append("Hello ") ; fun(buf) ; // 传递StringBuffer内容 System.out.println(buf) ; // 打印内容 } public static void fun(StringBuffer s){ // 接收StringBuffer引用 s.append("MLDN ").append("LiXingHua") ; // 修改StringBuffer的内容 } };
1.2在任意位置处为StringBuffer添加内容insert
public class StringBufferDemo03{ public static void main(String args[]){ StringBuffer buf = new StringBuffer() ; // 声明StringBuffer对象 buf.append("World!!") ; // 添加内容 buf.insert(0,"Hello ") ; // 在第一个内容之前添加内容 System.out.println(buf) ; buf.insert(buf.length(),"MLDN~") ; // 在最后添加内容 System.out.println(buf) ; } };
1.3字符串反转操作reverse
public class StringBufferDemo04{ public static void main(String args[]){ StringBuffer buf = new StringBuffer() ; // 声明StringBuffer对象 buf.append("World!!") ; // 添加内容 buf.insert(0,"Hello ") ; // 在第一个内容之前添加内容 String str = buf.reverse().toString() ; // 将内容反转后变为String类型 System.out.println(str) ; // 将内容输出 } };
1.4替换指定位置的内容replace
public class StringBufferDemo05{ public static void main(String args[]){ StringBuffer buf = new StringBuffer() ; // 声明StringBuffer对象 buf.append("Hello ").append("World!!") ; // 向StringBuffer添加内容 buf.replace(6,11,"LiXingHua") ; // 将world的内容替换 System.out.println("内容替换之后的结果:" + buf) ; // 输出内容 } };
1.5字符串截取subString
public class StringBufferDemo06{ public static void main(String args[]){ StringBuffer buf = new StringBuffer() ; // 声明StringBuffer对象 buf.append("Hello ").append("World!!") ; // 向StringBuffer添加内容 buf.replace(6,11,"LiXingHua") ; // 将world的内容替换 String str = buf.substring(6,15) ; // 截取指定范围的内容 System.out.println("内容截取之后的结果:" + str) ; // 输出内容:LiXingHua } };
1.6字符串删除delete
public class StringBufferDemo07{ public static void main(String args[]){ StringBuffer buf = new StringBuffer() ; // 声明StringBuffer对象 buf.append("Hello ").append("World!!") ; // 向StringBuffer添加内容 buf.replace(6,11,"LiXingHua") ; // 将world的内容替换 String str = buf.delete(6,15).toString() ; // 删除指定范围中的内容 System.out.println("删除之后的结果:" + str) ; // 输出内容 } };
1.7查找指定位置的内容是否存在indexOf
public class StringBufferDemo08{ public static void main(String args[]){ StringBuffer buf = new StringBuffer() ; // 声明StringBuffer对象 buf.append("Hello ").append("World!!") ; // 向StringBuffer添加内容 if(buf.indexOf("Hello")==-1){ System.out.println("没有查找到指定的内容") ; }else{ // 不为01表示查找到内容 System.out.println("可以查找到指定的内容") ; } } };
2、StringBuffer类的应用
public class StringBufferDemo09{ public static void main(String args[]){ String str1 = "LiXingHua" ; for(int i=0;i<100;i++){ str1 += i ; // 不断修改String的内存引用,性能低 } System.out.println(str1) ; } };
public class StringBufferDemo10{ public static void main(String args[]){ StringBuffer buf = new StringBuffer() ; buf.append("LiXingHua") ; for(int i=0;i<100;i++){ buf.append(i); // StringBuffer可以修改,性能高 } System.out.println(buf) ; } };
凡是需要频繁修改字符串内容的时候,都要使用StringBuffer类来完成。