java常用类二:StringBuffer
1.认识StringBuffer
在String类的介绍中,有一条特性是String的内容一旦声明则不可改变,如果要改变,则改变的肯定是String的引用地址,那么如果一个字符串需要经常改变,则就必须使用StringBuffer类。我们知道在Sring类中可以通过“+”进行字符串的拼接,但在StringBuffer中却只能使用append方法进行字符串的拼接。下面在介绍方法时候,再展示。
2.StringBuffer常用方法
方法一:字符串连接操作
在程序中可以使用append()方法可以进行字符串的连接,而且此方法返回一个StringBuffer类的实例,这样就可以使用代码链的形式一直调用append()方法。
方法演示示例:
public class StringBufferDemo01{
public static void mains(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("HZJT").append("HZIT"); //修改StringBuffer的内容
}
}
方法二:在任意位置处为StringBuffer添加内容
可以直接使用insert()方法在指定的位置上为StringBuffer添加内容。
方法演示示例:
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(),"HZIT");
System.out.println(buf);
}
}
方法三:字符串反转操作
在StringBuffer中专门提供了字符串反转的操作方法,作为字符串反转就是指将一个是“Hello”的字符串转为“olleH”。
public class StringBufferDemo04{
public static void main(String args[]){
StringBuffer buf = new StringBuffer();
buf.append("World"); //添加内容
buf.insert(0,"Hello"); //在第一个内容之前添加内容
String str = buf.reverse().toString(); //将内容反转后变为String类型
System.out.println(str); //输出:dlroWolleH
}
}
方法四:替换指定范围的内容
在StringBuffer中也存在replace()方法,使用此方法可以对指定范围的内容进行替换,而在String中如果要进行替换,则使用的是replaceAll()方法,这一点需要注意一下。
public class StringBufferDemo05{
public static void main(String args[]){
StringBuffer buf = new StringBuffer(); //声明StringBuffer对象
buf.append("Hello").append("World!!");
buf.replace(6,11,"hzit"); //将world的内容替换
System.out.println("内容替换之后的结果:"+buf); //输出内容:内容替换之后的结果:HelloWhzit!
}
}
方法五:字符串截取
通过substring()方法可以直接从StringBuffer的指定范围中截取处内容。
public class StringBufferDemo06{
public static void main(String args[]){
StringBuffer buf = new StringBuffer(); //声明StringBuffer对象
buf.append("Hello").append("World!!"); //向StringBuffer添加内容
buf.replace(6,11,"zhangsan"); //将world的内容替换
System.out.println(buf); //输出:HelloWzhangsan!
String str = buf.substring(6,15); //截取指定范围的内容
System.out.println("内容替换之后的结果:"+ str); //输出内容:zhangsan!
}
}
方法六:删除指定方位的字符串
因为StringBuffer本身的内容是可以更改的,所以也可以通过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,"zhangsan"); //将world的内容替换
System.out.println(buf); //输出:HelloWzhangsan!
String str = buf.delete(6,15).toString(); //截取指定范围的内容
System.out.println("删除之后的结果:"+ str); //输出内容:zhangsan!
}
}
方法七:查找指定的内容是否存在
通过indexOf()方法可以查找指定内容,如果查找到了,则可以返回内容的位置,如果没有查找到则返回-1。
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{
System.out.println("可以查找到指定的内容");
}
}
}
上面就是StringBuffer的基本用法,每个方法的代码都可以自己试一试,比较浅显,如有错误望指正。