Java: StringBuffer类的运用
2021/9/20 20:29:36
本文主要是介绍Java: StringBuffer类的运用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
字符串的学习不比其他数据类型的学习,不管是对对象(对象的实体、属性等)的打印,还是在平常所有可以展示出来供我们进行参考的数据内容,共同点就是它们都是 string 字符串,都是一种字符串文本,而且在对一些我们所想表达的数据的提交和获取时,都是一种 string 字符串数据,就好比在文本框 TextBox 输入我们的建议内容,在微信登录的时候对账号密码进行输入。
1、实体是可变的
不同于 string 对象,StringBuffer 有更灵活的实体空间,它是一种可变的字符串对象,而 string 对象的实体是不可变的,一旦进行了赋值,其实体不可以再发生变化(实体:好比指令的地址码,是一种具有指向的数据引用)。
举例:
// hashCode()返回的是虚拟机地址,无法获取实际内存地址,但可以认为是Java对象的内存地址 String s = "a"; System.out.println("对于String对象:"); System.out.println("改变前的引用:"+s.hashCode()); s = "a"+"1"; System.out.println("改变实体内容后:"+s.hashCode()); System.out.println(); StringBuffer a = new StringBuffer("a"); System.out.println("对于StringBuffer对象:"); System.out.println("改变前的引用:"+a.hashCode()); a.append("1"); System.out.println("改变实体内容后:"+a.hashCode());
结果:
可见,每每更改一次 string 对象,都会新建一个新的实体,无疑加大了内存空间的占用,但在Java中没有很明显的展示出来,是因为Java有自带的对无效无用的数据进行空间清理的功能。
2、实体的内存空间可以自动地改变大小
其实对于所有的数据都应该有他的最大容量、最大的数据长度,对于 StringBuffer 对象也是,从刚新建所 new 的新对象也有 0 个长度,16 的容量,每次所附加 append 的字符串序列,都会改变它的长度和容量,这也就做到了对 StringBuffer 对象的实体的内存空间可以自动地改变大小的属性,使得数据更加灵活。
三个基本的构造方法:
- StringBuffer():创建一个无参数的 StringBuffer 对象;
- StringBuffer(int size):创建一个可以指定分配对象实体的初始容量为参数 size 指定的字符 个数的 StringBuffer 对象;
- StringBuffer(String s):创建一个可以指定分配对象实体的初始容量为参数 s 的字符序列的 长度再加 16 的对象。
3、常用方法:
(1)append方法:
append(String s):追加 String 对象 s 的字符序列到 StringBuffer(放 StringBuffer 后面) 中,并返回当前对象的引用;
append(int n):将 int 型数据 n 转化为 String 对象再追加到当前对象的字符序列中,并返回 当前对象的引用;
append(Object o):将一个 Object 对象 o 的字符序列表示追加到当前对象的字符序列中,并 返回当前对象的引用。
(2)public char charAt(int n) 和 public void setCharAt(int n, char ch):
char charAt(int n) :获取 StringBuffer 对象的字符序列位置 n 上的字符;
setcharAt(int n, char ch):当前对象的字符序列位置 n 处的字符用参数 ch 指定的字符替换。
(3)StringBuffer insert(int index, String str):
将参数 str 指定的字符序列插入到参数 index 指定的位置,并返回当前对象的引用。
(4)public StringBuffer reserve():
将当前对象实体中的字符序列翻转,并返回当前对象的引用。
(5)StringBuffer delete(int startIndex, int endIndex):
将当前对象实体中的从 startIndex 位置到 endIndex - 1 位置处的字符序列进行删除,并返回当前对象的引用。
(6)StringBuffer replace(int startIndex, int endIndex, String str):
将当前对象从 startIndex 到 endIndex - 1 的字符序列的一个子字符序列用参数 str 指定的字符序列替换,并返回当前对象的引用。
例子:
public class Example8_14 { public static void main(String[] args) { StringBuffer strb = new StringBuffer(); strb.append("得学习"); System.out.println(strb); System.out.println("长度:"+strb.length()); System.out.println("容量:"+strb.capacity()); strb.setCharAt(0, 'D'); strb.replace(1, 2, "ei"); System.out.println(strb); strb.insert(3, " xue xi"); System.out.println(strb); int index = strb.indexOf("习"); System.out.println(index); strb.replace(index, strb.length(), ", hello!"); System.out.println(strb); } }
这篇关于Java: StringBuffer类的运用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南