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. Sublime Text 3如何快速生成HTML5的头部信息和常用的快捷键

    一.快速生成HTML5的头部信息的步骤: 1.Ctrl + N,新建一个文档: 2.Ctrl + Shift + P,打开命令模式,再输入 sshtml 进行模糊匹配,将语法切换到html模式: 3. ...

  2. mock数据(模拟后台数据)

    mock数据(模拟后台数据) - Emily恩 - 博客园 https://www.cnblogs.com/enboke/p/vue.html Mock.js http://mockjs.com/ 前 ...

  3. openvas-tutorial-for-beginners

    https://jonathansblog.co.uk/openvas-tutorial-for-beginners

  4. Velocity模板引擎介绍

    整理下Velocity使用方法,整理比较详细用例 1 Velocity基础语法 1.1 用户和开发人员参考文档 http://velocity.apache.org/engine/releases/v ...

  5. 1、Python request(爬虫-百度翻译)

    #encoding=utf-8 import requests def fanyi(): while True: context = input("请输入翻译的内容(退出q):") ...

  6. ABAP自动生成程序

    QID            用表 APQD 里的ID REPORT    Z001 去年6月花了一周的成果,可是玩了一周就没玩了, 现在想来: 研究下程序共性 ,这个总结的多,一定会提高效率 这个用 ...

  7. 如何删除github中的仓库?

    使用Github管理项目确实有些好处,但删除仓库(repositories)确实不太好找到. 首先进入要删除的仓库,点击右下角的“settings” 然后拉到页面最下面在danger zone 按“d ...

  8. VIMTUTOR 1.7中文版

    文章来源:http://waterxfire.blog.hexun.com/4106986_d.html =============================================== ...

  9. nginx基础系列

    centos中搭建nginx环境 nginx开机启动 nginx配置文件说明 nginx负载均衡配置 nginx upstream模块 nginx配置ssl nginx日志切割 nginx平滑升级

  10. Android零散知识点积累

    本文仅在记录android开发中遇到的零散知识点,会不断更新... 目录 .隐藏系统标题栏 .图片尺寸及屏幕密度 3.获取顶部状态栏高度 1.隐藏系统标题栏 1)在资源文件styles.xml中定义样 ...