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);
} }

运行结果如下所示:

最新文章

  1. poj 1463 Strategic game DP
  2. ZeroMQ(java)之负载均衡
  3. GoF--单例设计模式
  4. ActionScript基本语法讲解
  5. Docker中开启sshd服务
  6. NS CKD
  7. FLASH驱动之-块设备驱动系统构架
  8. Cookies与保持登录(新浪微博的简单模拟登录)
  9. NetBeans文件被锁,无法修改
  10. JS 控制 form是否提交表单
  11. 洗礼灵魂,修炼python(3)--从一个简单的print代码揭露编码问题,运行原理和语法习惯
  12. Perl文件测试操作和stat函数
  13. shell编程 之 传递参数到脚本里
  14. springboot logback 集成
  15. NumPy IO
  16. 【php增删改查实例】第四节 -自己 DIY 一个数据库管理工具
  17. Solrj调用Solr API
  18. Python 招聘信息爬取及可视化
  19. FPGA选型
  20. iis服务器站点配置

热门文章

  1. 巨蟒python全栈开发flask目录
  2. <2013 08 27> 雅思阅读相关
  3. Vue中非父子组件传值的问题
  4. 我的Android进阶之旅------>【强力推荐】Android开源图表库XCL-Charts版本发布及展示页
  5. HDU1950-Bridging signals-最长上升子序列
  6. SUBMIT RM07DOCS【MB51】 获取返回清单,抓取标准报表数据
  7. redis3.2.8安装过程
  8. 2.3 使用ARDUINO控制MC20进行GPRS的TCP通讯
  9. 如何用好 Google 等搜索引擎
  10. C#对excel的操作