StringBuffer是什么?

StringBuffer是使用缓冲区的,本身也是操作字符串的,它是一个具体的操作类。与String类不同的是,它其中的内容是可以改变的。它不能像String那样采用直接赋值的方式进行对象的实例化,必须通过构造方法。所以在需要频繁修改字符串内容时,都要用StringBuffer来完成。

初始化StringBuffer对象

  例如:StringBuffer str=new StringBuffer();  这样就初始化成功了。

StringBuffer连接字符

   String中连接字符用的是'+',而StringBuffer用的是用append()方法来进行字符的连接操作。下面通过代码演示下:

public class StringBufferTest {
public static void main(String[] args) {
StringBuffer buf=new StringBuffer(); //初始化StringBuffer对象
buf.append("This"); //添加内容
buf.append(" is");
buf.append(" StringBuffer").append("!"); //支持连续操作
System.out.println(buf);
}
}

  运行该程序,结果如下:

This is StringBuffer!

StringBuffer的常用方法

  1、在任意处为StringBuffer添加内容,运用insert()方法,下面是演示代码

public class StringBufferTest {
public static void main(String[] args) {
StringBuffer buf=new StringBuffer(); //初始化StringBuffer对象
buf.append(" is"); //添加内容
buf.insert(0,"This"); //在第一个内容前添加内容
buf.append(" StringBuffer").append("!"); //支持连续操作
buf.insert(buf.length()," Yes"); //在最后添加内容
System.out.println(buf);
}
}

  运行该程序,结果如下:

This is StringBuffer! Yes

  2、字符串截取

  通过substring()方法可完成操作

public class StringBufferTest {
public static void main(String[] args) {
StringBuffer buf=new StringBuffer(); //初始化StringBuffer对象
buf.append(" is"); //添加内容
buf.insert(0,"This"); //在第一个内容前添加内容
buf.append(" StringBuffer").append("!"); //支持连续操作
buf.insert(buf.length()," Yes"); //在最后添加内容
String a=buf.substring(8,20); //截取指定范围的内容,要注意字符串的位置是从0开始的
System.out.println(a);
}
}

  运行该程序,结果如下:

StringBuffer

  截取字符串还可以使用delete()方法来删除指定范围的内容

public class StringBufferTest {
public static void main(String[] args) {
StringBuffer buf=new StringBuffer(); //初始化StringBuffer对象
buf.append(" is"); //添加内容
buf.insert(0,"This"); //在第一个内容前添加内容
buf.append(" StringBuffer").append("!"); //支持连续操作
buf.insert(buf.length()," Yes"); //在最后添加内容
System.out.println("未删除前的内容");
System.out.println(buf);
String a=buf.delete(21,25).toString(); //删除指定范围的内容
System.out.println("未删除后的内容");
System.out.println(a);
}
}

  运行该程序,结果如下:

未删除前的内容
This is StringBuffer! Yes
未删除后的内容
This is StringBuffer!

  3、查找指定的内容是否存在

  在String中使用的是indexOf()方法进行查找,在StringBuffer里面也可以使用该方法。

public class StringBufferTest {
public static void main(String[] args) {
StringBuffer buf=new StringBuffer(); //初始化StringBuffer对象
buf.append(" is"); //添加内容
buf.insert(0,"This"); //在第一个内容前添加内容
buf.append(" StringBuffer").append("!"); //支持连续操作
buf.insert(buf.length()," Yes"); //在最后添加内容
if(buf.indexOf("Yes")!=-1){ //查找Yes是否存在,查找不到,indexOf()方法返回-1
System.out.println("查找到了");
}else{
System.out.println("没查找到");
}
}
}

  输出结果如下:

查找到了

  StringBuffer的常用方法我就介绍到这里,以上的方法对于String类中也是存在的,所以使用的时候根据DOC文档查看即可

总结

  通过以上代码,我们可以得到一个结论:凡是需要频繁的修改字符串的内容,都要使用StringBuffer

StringBuffer学习笔记的更多相关文章

  1. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

  2. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  3. MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  4. jsp&servlet学习笔记

    1.路径引用问题 一个css.jsp.html.或者javascript文件从从一个工程复制到另一工程,如果引用的时候使用的时相对路径,看似没有错误,但是却一直引用不进来,这时候要使用绝对路径,这样才 ...

  5. Android学习笔记之JSON数据解析

    转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种 ...

  6. WebService学习笔记系列(二)

    soap(简单对象访问协议),它是在http基础之上传递xml格式数据的协议.soap协议分为两个版本,soap1.1和soap1.2. 在学习webservice时我们有一个必备工具叫做tcpmon ...

  7. Java学习笔记——File类之文件管理和读写操作、下载图片

    Java学习笔记——File类之文件管理和读写操作.下载图片 File类的总结: 1.文件和文件夹的创建 2.文件的读取 3.文件的写入 4.文件的复制(字符流.字节流.处理流) 5.以图片地址下载图 ...

  8. Java学习笔记4

    Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...

  9. JavaSE中线程与并行API框架学习笔记——线程为什么会不安全?

    前言:休整一个多月之后,终于开始投简历了.这段时间休息了一阵子,又病了几天,真正用来复习准备的时间其实并不多.说实话,心里不是非常有底气. 这可能是学生时代遗留的思维惯性--总想着做好万全准备才去做事 ...

随机推荐

  1. 使用多线程完成Socket

    public class Service { //服务器 public static void main(String[] args) { ServerSocket serverSocket=null ...

  2. 关于HttpServlet和Servlet以及doPost和doGet关系

    这两天在看Servlet和Jsp,spring太难了,还是先看看基础,只怪自己太弱了. Servlet是一个接口,本身定义的是一种网络服务,HttpServlet是已经实现了Servlet接口,也就是 ...

  3. UFLDL课程学习(一)

    章节地址:http://ufldl.stanford.edu/tutorial/supervised/LinearRegression/ 章节名称:线性回归 (Linear Regression) 第 ...

  4. GridView and DropDownList

    <form id="form1" runat="server"> <div> <asp:GridView runat=" ...

  5. js中如何把字符串转化为对象

    例如   [javascript]  var test='{ colkey: "col", colsinfo: "NameList" }'       var ...

  6. vsftp的设置选项

    设置匿名用户上传的文件的权限: anon_umask=  匿名用户新增文件的umask 数值.默认值为077.     VSFTPD的设置选项 VSFTPD的配置文件/etc/vsftpd/vsftp ...

  7. (四)Angularjs - 小实例(2)

    自定义指令编写时钟 模板 <!-- 模板文件 --><html> <!-- 内置的ng-app指令通知编译器启动AngularJS框架--> <body ng ...

  8. nginx location详解(三)

    location官方文档:http://nginx.org/en/docs/http/ngx_http_core_module.html#location Syntax: location [ = | ...

  9. javascript关于检测浏览器和操作系统的问题

    1.方法学: 最好是检测浏览器的最小版本,这样才不会当版本升级之后不断添加新的内容进去. 理想的方式: if(isMinIE5){ //code } 直接检查准确的版本的缺点: if(isMinIE5 ...

  10. linux打包/解压-tar

    tar命令: 压缩: tar -zcvf  打包的文件名.tar.gz 打包的文件 解压: tar -zxvf  要压缩的文件名.tar.gz