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. 关于User的一些注解

    @RequiresAuthentication 验证用户是否登录,等同于方法subject.isAuthenticated() 结果为true时. @RequiresUser 验证用户是否被记忆,us ...

  2. 统计TCP网络连接情况

    #!/bin/bash metric=$1 tmp_file=/tmp/tcp_status.txt /bin/netstat -an|awk '/^tcp/{++S[$NF]}END{for(a i ...

  3. js的简单的逻辑算法题

    比如题目:寻找1~1000之内,所有能被5整除.或者能被6整除的数字 1 for(var i = 1 ; i <= 1000 ; i++){ 2  if(i % 5 == 0 || i % 6 ...

  4. Toeplitz matrix

    w https://en.wikipedia.org/wiki/Toeplitz_matrix Proof of Stolz-Cesaro theorem | planetmath.org  http ...

  5. django-websocket 安装及配置

    1.安装 dwebsocket (venv) C:\code_object\websocketTest>pip install dwebsocket -i https://pypi.douban ...

  6. 【转】@javax.ws.rs Webservice注解

    用于webservice. 1.路径 @javax.ws.rs.Path 标识要请求的资源类或资源方法的uri路径. 例,@Path("animal"),表示下一层路径是anima ...

  7. (4.19)深入理解SQLSERVER的日志链

    您真的理解了SQLSERVER的日志链了吗? 转自:https://www.cnblogs.com/lyhabc/p/3460272.html 先感谢宋沄剑给本人指点迷津,还有郭忠辉童鞋今天在QQ群里 ...

  8. 【云图】怎样制作全国KTV查询系统?

    摘要:本文以[唱吧]531麦霸音乐节为案例,具体解读了怎样导入自有数据到高德云图,并进行检索和展示.最后,调起高德mobile地图来进行路线规划和周边查询. 本案例能够应用在微信开发平台,支付宝公众服 ...

  9. Oracle学习笔记—数据库,实例,表空间,用户、表之间的关系

    之前一直使用的关系型数据库是Mysql,而新公司使用Oracle,所以最近从网上搜集了一些资料,整理到这里,如果有不对的地方,欢迎大家讨论. 基本概念: 数据库:Oracle 数据库是数据的物理存储. ...

  10. java 分页工具类

    //13年写的,今天(17)拷贝到博客园 package com.sicdt.sicsign.web.utils; import java.io.Serializable; import java.u ...