认识StringBuffer
StringBuffer 是使用缓冲区的,本身也是操作字符串的但是与String类不同String内容一旦声明就不能改变。,
改变的只是内存地址的指向,而Stringbuffer的内容是可以改变的
结果
结果 :!!dlroW olleH
结果:内容替换之后的结果:LiXingHua
结果:删除之后的结果:Hello !!
结果:可以查找到指定的内容
StringBuffer 是使用缓冲区的,本身也是操作字符串的但是与String类不同String内容一旦声明就不能改变。,
改变的只是内存地址的指向,而Stringbuffer的内容是可以改变的
对于Stringbuffer而已,本身就是一一个具体的操作类 所以不能像String那样采用赋值的方式进行对象实例化,必须通过构造方法
实例一:字符串连接
package KownClass;
public class GenericsDemo23{
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()
}
};
实例二:在任意位置添加内容
package KownClass;
public class GenericsDemo23{
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) ;
}
};
结果
Hello World!!
Hello World!!MLDN~
实例三:字符串反转
public class GenericsDemo23{
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) ; // 将内容输出
}
};
结果 :!!dlroW olleH
实例四:替换指定范围内容
package KownClass;
public class GenericsDemo23{
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) ; // 输出内容
}
};
结果:内容替换之后的结果:Hello LiXingHua!!
实例五:字符串截取
package KownClass;
public class GenericsDemo23{
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
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) ; // 输出内容
}
};
结果:删除之后的结果:Hello !!
实例六:查询字符串
package KownClass;
public class GenericsDemo23{
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("可以查找到指定的内容") ;
}
}
};
结果:可以查找到指定的内容
String 和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) ;
}
};
package KownClass;
public class StringBufferDemo09{
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) ;
}
};