A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 57xiaoyu 中级黑马   /  2015-4-1 14:06  /  668 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

二、StringBuffer

1.StringBuffer概述

StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。

StringBuffer是字符串缓冲区,是一个容器

特点:

1.长度是可以变化的

2.可以直接操作多个数据类型

3.最终会通过tostring方法变成字符串

2、StringBuffer对象的初始化

StringBuffer对象的初始化不像String类的初始化一样,Java提供的有特殊的语法,而通常情况下一般使用构造方法进行初始化。

例如:

         StringBuffer s = new StringBuffer();

这样初始化出的StringBuffer对象是一个空的对象。

如果需要创建带有内容的StringBuffer对象,则可以使用:

         StringBuffer s = new StringBuffer(“abc”);

这样初始化出的StringBuffer对象的内容就是字符串”abc”。

需要注意的是,StringBuffer和String属于不同的类型,也不能直接进行强制类型转换,下面的代码都是错误的:

         StringBuffer s = “abc”;               //赋值类型不匹配

         StringBuffer s = (StringBuffer)”abc”;    //不存在继承关系,无法进行强转

StringBuffer对象和String对象之间的互转的代码如下:

         String s = “abc”;

         StringBuffer sb1 = new StringBuffer(“123”);

         StringBuffer sb2 = new StringBuffer(s);   //String转换为StringBuffer

         String s1 = sb1.toString();              //StringBuffer转换为String


3.StringBuffer常见操作:

1.存储

StringBuffer append():将指定数据作为参数加到已有数据结尾处

StringBuffer insert(index,数据):可以将数据插入到指定index位置。

2.删除

StringBuffer delete(start,end):删除缓冲区中的数据,包含start不含end

StringBuffer deleteCharAt(index):删除指定位置的字符

3.获取

char charAt(int index)

int indexOf(String str)

int lastIndexOf(string str)

int length()

string substring(int start,int end)

4.修改

StringBuffer replace(start,end,string);

setCharAt(int index,char ch)

5.反转

reverse();

例如:

         StringBuffer sb = new StringBuffer(“abc”);

         sb.reverse();

经过反转以后,对象sb中的内容将变为”cba”。

6.将缓冲区中数据存储到指定字符数组中

void getChars(int srcBegin,int srcEnd,char[] dts,int dstBegin)

此外:

jdk1.5版本之后出现了Stringbuilder

StringBuffer是线程同步

StringBuilder是线程不同步

以后开发建议使用StringBuilder



1 个回复

倒序浏览
很好!!!!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马