StringBuffer学习笔记
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学习笔记的更多相关文章
- 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- jsp&servlet学习笔记
1.路径引用问题 一个css.jsp.html.或者javascript文件从从一个工程复制到另一工程,如果引用的时候使用的时相对路径,看似没有错误,但是却一直引用不进来,这时候要使用绝对路径,这样才 ...
- Android学习笔记之JSON数据解析
转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种 ...
- WebService学习笔记系列(二)
soap(简单对象访问协议),它是在http基础之上传递xml格式数据的协议.soap协议分为两个版本,soap1.1和soap1.2. 在学习webservice时我们有一个必备工具叫做tcpmon ...
- Java学习笔记——File类之文件管理和读写操作、下载图片
Java学习笔记——File类之文件管理和读写操作.下载图片 File类的总结: 1.文件和文件夹的创建 2.文件的读取 3.文件的写入 4.文件的复制(字符流.字节流.处理流) 5.以图片地址下载图 ...
- Java学习笔记4
Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...
- JavaSE中线程与并行API框架学习笔记——线程为什么会不安全?
前言:休整一个多月之后,终于开始投简历了.这段时间休息了一阵子,又病了几天,真正用来复习准备的时间其实并不多.说实话,心里不是非常有底气. 这可能是学生时代遗留的思维惯性--总想着做好万全准备才去做事 ...
随机推荐
- 读取文件内容返回List<String>类型
文件内容格式: string1 string2 String 3 …… 很简单,两句话 String content = new String(Files.readAllBytes(Paths.get ...
- 将用户信息保存到Cookie中
/** * 把用户保存到Cookie * * @param request * @param response * @param member */ private void rememberPwdA ...
- spring03autowire属性
1.创建需要的实体类 public class Student { //学生实体类 private String name; //姓名 private Integer age; //年龄 privat ...
- JavaScript网页制作特效
一.什么是JavaScript? 网页交互特效的脚本语言. 特效 二.BOM对象 能够使得JavaScript和浏览器进行对话. 主要是使用Window对象进行操作. History对象:历史,可以实 ...
- 自己动手写easyui的checkbox
最近项目中用到了easyui这个框架,找了一圈也没有找到checkbox list控件,被迫只能自己实现了,为了便于复用,自己封装了下,有需要的,直接拿去用吧.有意见或建议的,欢迎指教啊. 调用示例 ...
- sql设置事务隔离级别
SET TRANSACTION一共有以下几种级别: SET TRANSACTION ISOLATION LEVEL { READ UNCOMMITTED | READ COMMITTED | REPE ...
- HashMap的扩容机制, ConcurrentHashMap和Hashtable主要区别
源代码查看,有三个常量, static final int DEFAULT_INITIAL_CAPACITY = 16; static final int MAXIMUM_CAPACITY = 1 & ...
- iOS之使用QLPreviewController打开文件,处理txt文件出现乱码的情况
iOS之使用QLPreviewController打开文件,处理txt文件出现乱码的情况 主要代码: - (id <QLPreviewItem>)previewController:(QL ...
- 开发ContentProvider的步骤
开发ContentProvider的步骤如下: 1.编写一个类,该类必须继承自ContentProvider. 2.实现ContentProvider类中的所有抽象方法:insert() delete ...
- jquery mobile将页面内容当成弹框进行显示
注:必须使用相对应版本的jquery mobile css.不然无法正常显示 <div data-role="page" id="pageone"> ...