StringBuffer类

String类创建的字符串对象是不可修改的,也就是说,String字符串不能修改、删除或替换字符串中的饿某个字符,即String对象一旦创建,那么实体是不可以再发生变化的。

而StringBuffer类创建可修改的字符串序列,也就是说,该类对象的实体的内存空间可以自动地改变大小。

StringBuffer类中的方法主要偏重于对于字符串的变化,例如追加、插入和删除等。

StringBuffer对象调用append方法可以追加字符序列,例如:

public class Test08 {

    public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuffer sb = new StringBuffer("我喜欢");
System.out.println(sb);
sb.append("打篮球");
System.out.println(sb);
} }

运行结果如下所示:

StringBuffer类有三个构造方法,

StringBuffer()

StringBuffer(int size)

StringBuffer(String s)

第一个无参数的构造方法创建一个StringBuffer对象,分配给该对象的实体的初始容量是16个字符

第二个构造方法创建的对象分配给该实体的容量是size个字符

第三个构造方法创建的对象分配给该实体的容量是s的长度加上16个字符

通过capacity()方法我们可以知道当前实体的实际容量。

append方法

StringBuffer append(String s):将一个字符串对象追加到当前StringBuffer对象中,并返回当前StringBuffer对象的引用。

StringBuffer append(int n):将一个int型数据转化为字符串对象再追加到当前StringBuffer对象中,并返回当前StringBuffer对象的引用。

StringBuffer append(Object o):将一个Object对象的字符串表示追加到当前StringBuffer对象中,并返回当前StringBuffer对象的引用。

public char charAt(int n)得到参数n指定的位置上的单个字符

public void setCharAt(int n, char ch)  将StringBuffer对象n位置上的字符用ch替代

StringBuffer insert(int index, String str)  StringBuffer对象使用insert方法将参数str指定的字符串插入到参数index指定的位置。

public StringBuffer reverse()  StringBuffer对象使用reverse()方法将对象实体中的字符翻转,并返回当前对象的引用。

StringBuffer delete(int startIndex, int endIndex)  从当前StringBuffer对象实体中的字符串中删除一个子字符串,并返回当前对象的引用。

StringBuffer replace(int startIndex, int endIndex, String str)  将当前StringBuffer对象实体中的字符串的一个子字符串用参数str指定的字符串替换。

从startIndex到endIndex-1的字符串被替换。

上述方法使用情况如下所示:

public class Test09 {

    public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuffer sb = new StringBuffer();
sb.append("大家好");
//str.append("大家好");
System.out.println("sb:" + sb);
System.out.println("sb的容量:" + sb.capacity());
StringBuffer sb1 = new StringBuffer("大家好");
System.out.println("sb1:" + sb1);
System.out.println("sb1的容量:" + sb1.capacity());
sb.setCharAt(0, 'w');
sb.setCharAt(1, 'e');
System.out.println(sb);
sb.insert(2, " are all");
System.out.println(sb);
int index = sb.indexOf("好");
sb.replace(index, sb.length(), "right");
System.out.println(sb);
} }

运行结果如下所示:

review19的更多相关文章

随机推荐

  1. 集合遍历的时候删除List

    在Java中有时候我们会需要对List里面的符合某种业务的数据进行删除,但是如果不了解里面的机制就容易掉入“陷阱”导致遗漏或者程序异常.本文以代码例子的方式进行说明该问题. 1.采用索引下标遍历的方式 ...

  2. ThinkPHP在入口文件中判断是手机还是PC端访问网站

    <?php// +----------------------------------------------------------------------// | ThinkPHP [ WE ...

  3. ReentrantLock VS synchronized

    ReentrantLock 类实现了 Lock ,它拥有与 synchronized 相同的并发性和内存语义,但是添加了类似锁投票.定时锁等候和可中断锁等候的一些特性. 此外,它还提供了在激烈争用情况 ...

  4. 算法题 19 二叉平衡树检查 牛客网 CC150

    算法题 19 二叉平衡树检查 牛客网 CC150 实现一个函数,检查二叉树是否平衡,平衡的定义如下,对于树中的任意一个结点,其两颗子树的高度差不超过1. 给定指向树根结点的指针TreeNode* ro ...

  5. QuickSort again

    I wrote a blog about Quick Sort before. Let's talk more about it. If you don't think that the implem ...

  6. [转+整理]linux shell 将字符串分割成数组

    原文链接:http://1985wanggang.blog.163.com/blog/static/776383320121745626320/ a="one,two,three,four& ...

  7. outlook 设置分类收邮件

    打开outlook,工具---->“规则和通知”.建相应的规则即可.

  8. MapInfo 文件格式说明

    MapInfo 文件格式说明(id.map.tab.dat) (1). 属性数据的表结构文件.TAB 属性数据表结构文件定义了地图属性数据的表结构,包括字段数.字段名称.字段类型和字段宽度.索引字段及 ...

  9. Video标签的使用

    现在如果要在页面中使用video标签,需要考虑三种情况,支持Ogg Theora或者VP8(如果这玩意儿没出事的话)的(Opera.Mozilla.Chrome),支持H.264的(Safari.IE ...

  10. 财经世界(2)A股B股和H股

    在发行过程中,公司通过章程给不同股份形式赋予不同的权益,使公司股份出现A股.B股等形式.我国上市公司的股票有A股.B股.H股.N股.S股等的区分.这一区分的主要依据股票的上市地点和所面对的投资者而定. ...