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框架学习笔记——线程为什么会不安全?
前言:休整一个多月之后,终于开始投简历了.这段时间休息了一阵子,又病了几天,真正用来复习准备的时间其实并不多.说实话,心里不是非常有底气. 这可能是学生时代遗留的思维惯性--总想着做好万全准备才去做事 ...
随机推荐
- 2008年NOI全国竞赛 假面舞会
/* 分三种情况 1 有环:找环长的gcd作为max gcd的超过2的最小因子作为min 2 树:所有最长链的和作为max 3为min (最长链≥3) 3 两条相交链:找出所有的这样的两条链的差 同1 ...
- new关键字在虚方法的动态调用中的阻断作用
关于new关键字在虚方法动态调用中的阻断作用,也有了更明确的理论基础.在子类方法中,如果标记 new 关键字,则意味着隐藏基类实现,其实就是创建了与父类同名的另一个方法,在编译中这两个方法处于动态方法 ...
- MongoDB与PHP的添加、修改、查询、删除
链接数据库使用下面的代码创建一个数据库链接 <?php$connection = new Mongo(); //链接到 localhost:27017$connection = new Mong ...
- 安卓手机内外SD卡互换
相信有許多人....有內置sd太小...外置sd(sdcard2或extsd)卻只能放資料.... 一些遊戲或者是影音播放軟體....根本不會去讀外置sd(sdcard2或extsd)..... 記憶 ...
- spark 操作hbase
HBase经过七年发展,终于在今年2月底,发布了 1.0.0 版本.这个版本提供了一些让人激动的功能,并且,在不牺牲稳定性的前提下,引入了新的API.虽然 1.0.0 兼容旧版本的 API,不过还是应 ...
- Ps 美白磨皮【1】
方法一:去色加图层模式法 打开需要编辑的图片,按Ctrl+J复制新的图层1. 点击菜单栏“图像”-“调整”-“去色”,如下图所示. 将图层面板的混合模式更改为“滤色”,如下图4所示. 最后的显示效 ...
- 常用shell笔记
一. vi 编辑文件 1. 删除字符:在只读模式下,X:大字的X,每按一次删除光标所在位置的前面一个字符:x:小写字母x 每按一次删除光标所在位置的后面一个字符 2. 进入编辑模式:i.a.o切换进 ...
- Java学习笔记——实现一个简易记事本Notepad的编写
记事本功能介绍 1. 新建:记事本清空. 2. 打开:可打开笔记本上任意文本文件. 3. 保存:将文件保存至当前文件夹. 4. 另存为:将文件保存至任意位置. 5. 退出:退出时确 ...
- ValidateCode.cs验证码时设置缓存的使用
using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System. ...
- Html jquery实现根据 IOS和Android访问跳转
<script src="js/jquery-1.7.1.min.js" type="text/javascript"></script> ...