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框架学习笔记——线程为什么会不安全?
前言:休整一个多月之后,终于开始投简历了.这段时间休息了一阵子,又病了几天,真正用来复习准备的时间其实并不多.说实话,心里不是非常有底气. 这可能是学生时代遗留的思维惯性--总想着做好万全准备才去做事 ...
随机推荐
- 使用多线程完成Socket
public class Service { //服务器 public static void main(String[] args) { ServerSocket serverSocket=null ...
- 关于HttpServlet和Servlet以及doPost和doGet关系
这两天在看Servlet和Jsp,spring太难了,还是先看看基础,只怪自己太弱了. Servlet是一个接口,本身定义的是一种网络服务,HttpServlet是已经实现了Servlet接口,也就是 ...
- UFLDL课程学习(一)
章节地址:http://ufldl.stanford.edu/tutorial/supervised/LinearRegression/ 章节名称:线性回归 (Linear Regression) 第 ...
- GridView and DropDownList
<form id="form1" runat="server"> <div> <asp:GridView runat=" ...
- js中如何把字符串转化为对象
例如 [javascript] var test='{ colkey: "col", colsinfo: "NameList" }' var ...
- vsftp的设置选项
设置匿名用户上传的文件的权限: anon_umask= 匿名用户新增文件的umask 数值.默认值为077. VSFTPD的设置选项 VSFTPD的配置文件/etc/vsftpd/vsftp ...
- (四)Angularjs - 小实例(2)
自定义指令编写时钟 模板 <!-- 模板文件 --><html> <!-- 内置的ng-app指令通知编译器启动AngularJS框架--> <body ng ...
- nginx location详解(三)
location官方文档:http://nginx.org/en/docs/http/ngx_http_core_module.html#location Syntax: location [ = | ...
- javascript关于检测浏览器和操作系统的问题
1.方法学: 最好是检测浏览器的最小版本,这样才不会当版本升级之后不断添加新的内容进去. 理想的方式: if(isMinIE5){ //code } 直接检查准确的版本的缺点: if(isMinIE5 ...
- linux打包/解压-tar
tar命令: 压缩: tar -zcvf 打包的文件名.tar.gz 打包的文件 解压: tar -zxvf 要压缩的文件名.tar.gz