Java常用类库——StringBuffer类的使用
来源:互联网 发布:登录到mysql服务器端 编辑:程序博客网 时间:2024/06/06 09:53
学习目标
掌握StringBuffer与String的区别。
掌握StringBuffer的常用方法。
掌握StringBuffer的实际应用。
认识StringBuffer
StringBuffer是使用缓冲区的,本身也是操作字符串的,但是与String类不同,String类的内容一旦声明之后则不可以改变,改变的只是内存地址的指向,而StringBuffer中的内容是可以改变的。
对于StringBuffer而言,本身是一个具体的操作类,所以不能向String那样采用直接赋值的方式进行对象实例化,必须通过构造方法完成。
查找API如下:
具体的使用方法查找API即可。
StringBuffer连接字符操作
当一个字符串的内容需要被经常改变时就要使用StringBuffer。
在StringBuffer中使用append()方法,完成字符串的连接操作。
实例操作一:字符串的连接操作(append)
在StringBuffer中提供了一系列的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("刘勋 ").append("年龄:23") ;// 修改StringBuffer的内容}};
以上代码中证明StringBuffer的内容是可以改变的。
实例操作二:在任意位置处为StringBuffer添加内容。
可以直接使用insert()方法添加内容:public StringBuffer insert(int offset)
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(),"WWW~") ;// 在最后添加内容System.out.println(buf) ;}};
在StringBuffer中与String非常类似的是都可以使用length()方法求出字符串的长度。
实例操作三:字符串反转操作
直接使用reverse()方法就可以完成反转的功能:public StringBuffer 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) ;// 将内容输出}};
实例操作四:替换指定范围的内容。
在StringBuffer类中也存在replace方法,使用此方法就可以对指定范围的内容进行替换。
public StringBuffer replace(int start,int end,String str);
public class StringBufferDemo05{public static void main(String args[]){StringBuffer buf = new StringBuffer() ;// 声明StringBuffer对象 buf.append("Hello ").append("World!!") ;// 向StringBuffer添加内容buf.replace(6,11,"liuxun") ;// 将world的内容替换System.out.println("内容替换之后的结果:" + buf) ;// 输出内容}};
注意:在字符串操作中下标start和end的意思通常都是指:下标区间在 start<= index <end的内容 下标的起始位置不是1,而是0.
实例操作五:字符串截取(不修改StringBuffer)
通过substring()方法直接从StringBuffer中指定范围的截取内容。
public String substring(int start,int end);
注意:此方法截取的是内容以开辟字符串的方式返回,并不会修改原先的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,"liuxun1993") ;// 将world的内容替换System.out.println("内容替换之后的结果:" + buf) ;// 输出内容String str = buf.substring(6,15) ;// 截取指定范围的内容System.out.println("截取的字符串内容是:" + str) ;// 输出内容System.out.println("截取字符串后的buf是:" + buf) ;// 输出内容}};
实例操作六:字符串的截取(删除修改)
因为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,"liuxun1993") ;// 将world的内容替换System.out.println("内容替换之后的结果:" + buf) ;// 输出内容String str = buf.delete(6,15).toString() ;// 删除指定范围中的内容System.out.println("删除之后的结果:" + str) ;// 输出内容System.out.println("删除之后的buf是:" + buf) ;// 输出内容}};
可以看出delete()方法是先将StringBuffer中指定范围的内容删除掉,再用一个String进行接收。
实例操作七:查找指定的内容是否存在。
在String里中可以使用indexOf()方法进行查找,而在StringBuffer中也可以继续使用此方法,此方法如果找到了内容则返回下标位置,若找不到则返回-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{// 不为01表示查找到内容System.out.println("可以查找到指定的内容") ;}}};
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) ;}};以上的操作代码因为要频繁修改字符串中的内容,所以使用String根本就不合理,最好的做法就是使用StringBuffer。
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类完成,而且在StringBuffer类中也提供了一些方法是String类中所没有的,包括:delete()、insert()等等,这些方法需要的时候直接查找DOC 文档即可。
0 0
- Java常用类库——StringBuffer类的使用
- java常用类库---StringBuffer
- java的StringBuffer类使用
- Java的StringBuffer类使用
- java常用类库之StringBuffer
- Java常用类库(StringBuffer)
- Java常用类库之Stringbuffer
- JAVA常用类———StringBuffer类
- java常用类——String、StringBuffer、StringBuilder类
- java基础学习总结——常用类stringBuffer
- JAVA常用类之StringBuffer
- 黑马程序员——java-几个常用的类(Object,Scanner,String,StringBuffer/StringBuilder)
- JAVA——StringBuffer的使用总结
- java中StringBuffer()类的使用
- JAVA语言StringBuffer类的使用
- StringBuffer类的常用方法
- StringBuffer类的常用方法
- StringBuffer类的常用方法
- 简单触发的创建和调用
- Xml和json接口
- 排序算法-选择排序
- BaseAnimation 于开源的APP,致力于收集各种动画效果(最新版本1.3)
- 1008 数组元素循环右移问题 (20)
- Java常用类库——StringBuffer类的使用
- 《离散数学及其应用》读书笔记【一】逻辑和证明
- meave项目导入eclipse中并发布到tomcat上
- 4.2、JS——var 数据类型 节点标签属性操作 动态获取方法
- Linux下搭建maven私服nexus3.x
- Mac好用的截图标注工具
- kettle内存溢出解决方法
- 制作便签纸盒工艺
- Jsonp接口