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. 2015-09-28 Javascript

    1.Javascript是什么? JavaScript是一种脚本语言,结构简单,使用方便,其代码可以直接放入HTML文档中,可以直接在支持JavaScript的浏览器中运行.JavaSript. Ja ...

  2. linux的make install命令

    tar zxvf redis-2.8.15.tar.gz cd redis-2.8.15/ make make test make install

  3. [php基础]PHP Form表单验证:PHP form validator使用说明

    在PHP网站开发建设中,用户注册.留言是必不可少的功能,用户提交的信息数据都是通过Form表单提交,为了保证数据的完整性.安全性,PHP Form表单验证是过滤数据的首要环节,PHP对表单提交数据的验 ...

  4. PL/SQL中的变量案例解析

    1.标量: ag1: declare v_ename emp.ename%type;--自己称为单变量 begin select ename into v_ename from emp where e ...

  5. Objective-C 笔记一(HelloWorld)

    作为一个果粉And程序员,奔着对OC浓厚的兴趣,开始学习IOS.并以后也想从事IOS开发工作.并将自己的学习记录下来,俗话说的好,不会总结的程序猿,不是好程序员! Xcode可以在AppStore里下 ...

  6. php全局变量与局部变量中的使用

    <?php //error handler function $v1=10; function f1() { //这里是把局部变成全局变量,也就是创建一个和外部同名的局部变量并通过“引用”的方式 ...

  7. eclipse提交hadoop集群跑程序

    在eclipse下搭建hadoop后,测试wordcount程序,右击 Run on hadoop 程序跑成功后,发现“INFO - Job job_local401325246_0001 compl ...

  8. PyQt5+python3的FindDialog

    import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import Qt, pyqtSignal class FindDialog(QD ...

  9. liunx运维面试题汇总二

    一.填空题:1. 在Linux系统中,以 文件 方式访问设备 .2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统. 3. Linux文件系统中每个文件用 i节点 来标识 ...

  10. iPhone开发:Objective C 代码规范-iOS总结版

    一,关于空行 A:.h中的空行 1,文件说明与头文件包涵(#import)之间空1行 2,头文件包涵(#import)之间,如果需要分类区别,各类别之间空1行 3,头文件包涵(#import)与@cl ...