Java学习总结:31(StringBuffer类)
StringBuffer类
在Java中String类不适合使用于频繁修改字符串的操作上(因为其字符串常量一旦声明则不可改变,只能改变字符串对象,改变的是其内存地址的指向),所以我们可以使用StringBuffer类方便用户进行内容的修改。
例:观察StringBuffer类的使用
package Project.Study.StringBufferClass;public class Test1 {public static void main(String []args){//String类可以直接赋值,但是StringBuffer类不行StringBuffer buf=new StringBuffer(); //实例化StringBuffer类对象buf.append("Hello ").append("World").append("!!!"); //append()方法和String类的“+”作用类似change(buf); //引用传递System.out.println(buf);}public static void change(StringBuffer temp){//接收StringBuffer引用temp.append("\n").append("Hi").append("!!!");//修改内容}
}
//结果:
//Hello World!!!
//Hi!!!
我们可以发现String类和StringBuffer类都是CharSequence接口的子类,也就是说这两个类的对象都可以利用自动向上转型的操作为CharSequence接口实例化。
例:
package Project.Study.StringBufferClass;public class Test2 {public static void main(String []args){CharSequence seq="Hello World!!!";//将String类的实例化对象向上转型为CharSequence接口对象System.out.println(seq); //String类覆写的toString()}
}
//结果:
//Hello World!!!
需要注意的是,虽然String和StringBuffer类都属于CharSequence接口的子类,但是这两个类对象是不能直接转换的。
一:将String类转换为StringBuffer类对象
1.利用StringBuffer类的构造方法(public StringBuffer(String str))
例:
package Project.Study.StringBufferClass;public class Test2 {public static void main(String []args){StringBuffer buf=new StringBuffer("Hello World!!!");//利用该构造方法可以将传递进来的String类对象实例化为StringBuffer类对象System.out.println(buf);}
}
//结果:
//Hello World!!!
2.利用StringBuffer类的append()方法(public StringBuffer append(String str))
例:
package Project.Study.StringBufferClass;public class Test2 {public static void main(String []args){StringBuffer buf=new StringBuffer();buf.append("Hello World!!!"); //String变为StringBufferSystem.out.println(buf);}
}
//结果:
//Hello World!!!
二.将String Buffer类变为String
1.利用toString()方法可以将StringBuffer转换为String
例:
package Project.Study.StringBufferClass;public class Test3 {public static void main(String []args){StringBuffer buf=new StringBuffer("Hello World!!!"); //String变为StringBufferString str=buf.toString(); //任何类都具备toString()方法System.out.println(str);}
}
//结果:
//Hello World!!!
事实上所以的类中都会继承Object类的toString()方法,所以所有的类对象都可以转换为String类对象。
2.利用String类的构造方法(public String(StringBuffer buffer))实现StringBuffer与String的转换
例:
package Project.Study.StringBufferClass;public class Test4 {public static void main(String[]args){StringBuffer buf=new StringBuffer("Hello World!!!"); //String变为StringBufferString str=new String(buf); //String类构造,开辟新内存System.out.println(str);}
}
//结果:
//Hello World!!!
三.由于String与StringBuffer都表示字符串,所以在String类里面也提供了一个和StringBuffer比较的方法:public boolean contentEquals(StringBuffer sb)
package Project.Study.StringBufferClass;public class Test5 {public static void main(String[]args){StringBuffer buf=new StringBuffer("Hello");System.out.println("Hello".contentEquals(buf));}
}
//结果:
//true
注意:此方法比较时会区分大小写
StringBuffer类常用的操作方法
No. | 方法 | 类型 | 描述 |
---|---|---|---|
1 | public StringBuffer append(数据类型变量) | 普通 | 数据追加操作 |
2 | public StringBuffer reverse() | 普通 | 字符串反转操作 |
3 | public StringBuffer insert(int offset,数据类型变量) | 普通 | 在指定位置追加内容 |
4 | public StringBuffer delete(int start,int end) | 普通 | 删除指定索引范围的内容 |
例:字符串反转操作
package Project.Study.StringBufferClass;public class Test6 {public static void main(String[]args){StringBuffer buf=new StringBuffer("Hello World");System.out.println(buf.reverse()); //使用reverse()方法反转字符串}
}
//结果:
//dlroW olleH
例:在指定索引位置增加数据
package Project.Study.StringBufferClass;public class Test7 {public static void main(String[]args){StringBuffer buf=new StringBuffer("Hello");//首先在最前面加上字符串,然后在指定位置再追加字符串buf.insert(0,"Now!").insert(9," World");System.out.println(buf);}
}
//结果:
//Now!Hello World
例:删除部分数据
package Project.Study.StringBufferClass;public class Test8 {public static void main(String[]args){StringBuffer buf=new StringBuffer("Hello World!!!");System.out.println(buf.delete(5,11));}
}
//结果:
//Hello!!!
Java学习总结:31(StringBuffer类)相关推荐
- java工具类应该抛异常吗,java学习阶段一 工具类(异常)
java学习阶段一 工具类(异常) 介绍 异常:运行期间出现的错误 背离程序本身意图的表现 基本知识 异常的分类 根类 Throwable Error 程序无法处理的错误 表示运行应用程序中教严重的问 ...
- java学习笔记(十)----String类和StringBuffer类
***String类和StringBuffer类 -------------------------- String类对象中的内容一旦被初始化就不能再改变 StringBuffer类用于封装内容可以改 ...
- Java 知识点整理-7.StringBuffer类+冒泡排序+选择排序+二分法+Arrays类+基本数据类型的包装类
1.StringBuffer类概述:线程安全的可变字符序列,一个类似于String的字符串缓冲区,但不能修改(不能像String那样用加号与其他类型数据连接),但通过某些方法调用可以改变该序列的长度和 ...
- java学习笔记7--抽象类与抽象方法
接着前面的学习: java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) jav ...
- java 字符串缓冲区_详解Java中字符串缓冲区StringBuffer类的使用
StringBuffer 是一个线程安全的可变的字符序列.它继承于AbstractStringBuilder,实现了CharSequence接口. StringBuilder 也是继承于Abstrac ...
- Java学习总结3——枚举类和反射机制
Java枚举类和反射机制 一.Java枚举类(Enum): 在某些情况下,一个类的对象是有限且固定的,对于这种对象的实例有限且固定的类,在 Java 中被称为枚举类(Enum):枚举类是为了提高代码可 ...
- Java学习笔记Day06 工具类及常用算法
第六章 工具类及常用算法 文章目录 第六章 工具类及常用算法 Java语言基础类 Java基础类库 Object类 概述 toString方法 方法摘要 覆盖重写 equals方法 方法摘要 默认地址 ...
- 21天学通Java学习笔记-Day11(常用类)
java 常用类(重点): String 类: String 类代表字符串.创建以后不能更变. public class tests { public static void main(String[ ...
- 【Java学习】Font字体类的用法介绍
一.Font类简介 Font类是用于设置图形用户界面上的字体样式的,包括字体类型(例如宋体.仿宋.Times New Roman等).字体风格(例如斜体字.加粗等).以及字号大小. 二.Font类的引 ...
最新文章
- SpringBoot rest映射及源码解析
- SOL注入——基干联合查询的POST注入(四)
- ChaosBlade 发布对 C++ 应用混沌实验的支持
- Visual C#中父窗口和子窗口之间实现控件互操作
- AutoPager的简单实现
- 深度学习机器72小时自学国际象棋达到大师水平
- linux js脚本无法响应,执行Linux shell脚本时出错
- SpringBoot配置参数绑定@ConfigurationProperties@Value
- 如何将程序下载到单片机
- uniapp引入阿里巴巴矢量图标库
- Linux服务器上修改深度学习代码
- 2021年下半年软件设计师下午真题及答案解析
- 3、查询省会(Python实现多行输入,以回车结束输入)
- 理解Python中的RingBuffer环形缓冲区
- git reset --hard HEAD~X误删恢复操作
- Jquery分页之(上一页,下一页)
- 5款常用的html5游戏引擎以及优缺点分析
- 移动代理服务器 Mobile Agent Server(MAS)
- 【[第一次写博客]Uda课程中的P控制器实现说明】
- CXXNET 安装教程
热门文章
- Vue 监听路由变化的三种方式
- 在Ubuntu 16.04.3 LTS上运行go install出错的问题
- Django 数据库
- 连接惠普打印机(通过WIFI)
- getURLParameters - 网址参数
- struts2中 ServletActionContext与ActionContext区别
- Windows下Redis如何永久更改密码
- 任务二:1、选择器 2、连接集中状态的顺序 3、浮动的用发和原理 4、盒模型在IE和Google等不同浏览器的区别与联系...
- Appium学习笔记2_Android获取元素篇
- springboot集成logback日志 通用logback.xml模板详解