(JAVA):字符串的拼接插入-----StringBuffer类的常见API

简介: (JAVA):字符串的拼接插入-----StringBuffer类的常见API

目录

前言:

1、StringBuffer类的初始化

注意:

常见的三种初始化:

2、append() 方法

声明:

功能:            

代码示例1:

代码示例2:

结果分析:        

3、insert() 方法

声明:

功能:              

代码示例:

扩展示例:

结果分析:

4、补充:



前言:

                                       把握好运,赢得名声

       运气变化无常,却能助人一生,名声永恒持久,却总是姗姗来迟。获得好运之后要防范别人的嫉恨,获得名声之后要防止被别人遗忘。你可以渴求好运,有时也能够实现愿望,但名声却是靠孜孜不倦的努力得来的。对名声的渴望来源于美德。古往今来,名声总是与巨人相伴,而且会分成两个极端:不是臭名远扬的奸雄怪杰,就是众人皆赞的天才英豪。



1、StringBuffer类的初始化

注意:

       StringBuffer在字符串操作上克服了String拼接会产生多个对象的问题。它可以以一个字符串作为参数进行初始化。

常见的三种初始化:

第一种:

StringBuffer str1 = new StringBuffer(); //无参构造函数初始化

第二种:

StringBuffer str1 = new StringBuffer("ting"); //使用字符串对象进行初始化

第三种:

StringBuffer str2 = new StringBuffer(str1);//使用另一个StringBuffer对象进行初始化


2、append() 方法

声明:

             StringBuffer append(String s)

功能:

             将指定的字符串追加到此字符序列。

代码示例1:

StringBuffer str1 = new StringBuffer(); //初始化对象
str1.append("CSE"); //追加字符串
System.out.println(str1); //打印输出

运行结果1:

              CSE (说明:初始化对象是空的,所以结果是追加的字符)

代码示例2:

        StringBuffer str1 = new StringBuffer("CSE"); //初始化对象
        str1.append("你是"); //追加字符”你是“
        str1.append(18); //追加数字18
        str1.append("age"); //追加字符age
        str1.append(true); //追加布尔类型的true
        System.out.println(str1);

运行结果2:

               CSE你是18agetrue

结果分析:        

       从运行结果看,StringBuffer的append() 方法可以追加任何类型的值,并将之转换成字符串添加到StringBuffer对象的末尾。StringBuffer将boolean类型的变量的值当成是字面量追加到末尾,而其他类型则直接当成一个字符进行追加。


3、insert() 方法

声明:

              insert(int offset, String str)

功能:

               将 str 参数的字符串插入此序列中。

代码示例:

str1.insert(2,'我'); //在索引2的位置插入字符
System.out.println(str1);

运行结果:(承接前面的结果进行改变)

               CSE你是18agetrue

扩展示例:

char[] ch = {'a','b','c','d'};
str1.insert(3, ch, 0, 2); //在索引3的位置插入数组(数组从0索引开始到第2个字符)到str1中去
System.out.println(str1);

       3表示str1的索引位置;ch表示要插入的数组;0、2表示数组中要插入到str1中的下标索引范围

运行结果:

               CS我abE你是18agetrue


结果分析:

       StringBuffer还有insert方法可以在指定的位置插入传入的值,insert也会将boolean类型的变量以字面量值插入到指定的索引位置,该索引位置的值依次向后移动。Insert还可以接受一个字符序列作为参数,从指定的字符序列索引位置取出指定长度的字符序列,插入到StringBuffer对象的指定索引位置,该索引位置及之后的字符依次向后移动。


4、补充:

       打印StringBuffer对象的时候并没有使用toString() 方法,这是因为系统的输入输出方法会把传入的参数转换成字符串后输出,这相当于对所有的打印目标都添加了一个toString()方法,因此,此处可以省去toString()方法。

声明:

        String toString()

功能:

        返回此序列中数据的字符串表示形式



相关文章
|
20天前
|
Kubernetes jenkins 持续交付
从代码到k8s部署应有尽有系列-java源码之String详解
本文详细介绍了一个基于 `gitlab + jenkins + harbor + k8s` 的自动化部署环境搭建流程。其中,`gitlab` 用于代码托管和 CI,`jenkins` 负责 CD 发布,`harbor` 作为镜像仓库,而 `k8s` 则用于运行服务。文章具体介绍了每项工具的部署步骤,并提供了详细的配置信息和示例代码。此外,还特别指出中间件(如 MySQL、Redis 等)应部署在 K8s 之外,以确保服务稳定性和独立性。通过本文,读者可以学习如何在本地环境中搭建一套完整的自动化部署系统。
51 0
|
9天前
|
Java API C++
Java 8 Stream Api 中的 peek 操作
本文介绍了Java中`Stream`的`peek`操作,该操作通过`Consumer<T>`函数消费流中的每个元素,但不改变元素类型。文章详细解释了`Consumer<T>`接口及其使用场景,并通过示例代码展示了`peek`操作的应用。此外,还对比了`peek`与`map`的区别,帮助读者更好地理解这两种操作的不同用途。作者为码农小胖哥,原文发布于稀土掘金。
Java 8 Stream Api 中的 peek 操作
|
6天前
|
安全 Java API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
|
5天前
|
存储 安全 Java
Java——String类详解
String 是 Java 中的一个类,用于表示字符串,属于引用数据类型。字符串可以通过多种方式定义,如直接赋值、创建对象、传入 char 或 byte 类型数组。直接赋值会将字符串存储在串池中,复用相同的字符串以节省内存。String 类提供了丰富的方法,如比较(equals() 和 compareTo())、查找(charAt() 和 indexOf())、转换(valueOf() 和 format())、拆分(split())和截取(substring())。此外,还介绍了 StringBuilder 和 StringJoiner 类,前者用于高效拼接字符串,后者用于按指定格式拼接字符串
11 1
Java——String类详解
|
2天前
|
安全 Java
Java StringBuffer 和 StringBuilder 类详解
在 Java 中,`StringBuffer` 和 `StringBuilder` 用于操作可变字符串,支持拼接、插入、删除等功能。两者的主要区别在于线程安全性和性能:`StringBuffer` 线程安全但较慢,适用于多线程环境;`StringBuilder` 非线程安全但更快,适合单线程环境。选择合适的类取决于具体的应用场景和性能需求。通常,在不需要线程安全的情况下,推荐使用 `StringBuilder` 以获得更好的性能。
|
2天前
|
Java 索引
Java String 类详解
Java 中的 `String` 类用于表示不可变的字符序列,是 Java 标准库 `java.lang` 包的一部分。字符串对象一旦创建,其内容不可更改,修改会生成新对象。
|
13天前
|
安全 Java API
【性能与安全的双重飞跃】JDK 22外部函数与内存API:JNI的继任者,引领Java新潮流!
【9月更文挑战第7天】JDK 22外部函数与内存API的发布,标志着Java在性能与安全性方面实现了双重飞跃。作为JNI的继任者,这一新特性不仅简化了Java与本地代码的交互过程,还提升了程序的性能和安全性。我们有理由相信,在外部函数与内存API的引领下,Java将开启一个全新的编程时代,为开发者们带来更加高效、更加安全的编程体验。让我们共同期待Java在未来的辉煌成就!
43 11
|
14天前
|
安全 Java API
【本地与Java无缝对接】JDK 22外部函数和内存API:JNI终结者,性能与安全双提升!
【9月更文挑战第6天】JDK 22的外部函数和内存API无疑是Java编程语言发展史上的一个重要里程碑。它不仅解决了JNI的诸多局限和挑战,还为Java与本地代码的互操作提供了更加高效、安全和简洁的解决方案。随着FFM API的逐渐成熟和完善,我们有理由相信,Java将在更多领域展现出其强大的生命力和竞争力。让我们共同期待Java编程新纪元的到来!
38 11
|
12天前
|
监控 Java 大数据
【Java内存管理新突破】JDK 22:细粒度内存管理API,精准控制每一块内存!
【9月更文挑战第9天】虽然目前JDK 22的确切内容尚未公布,但我们可以根据Java语言的发展趋势和社区的需求,预测细粒度内存管理API可能成为未来Java内存管理领域的新突破。这套API将为开发者提供前所未有的内存控制能力,助力Java应用在更多领域发挥更大作用。我们期待JDK 22的发布,期待Java语言在内存管理领域的持续创新和发展。
|
13天前
|
Java API 数据处理
【Java的SIMD革命】JDK 22向量API:释放硬件潜能,让Java应用性能飙升!
【9月更文挑战第7天】 JDK 22向量API的发布标志着Java编程语言在SIMD技术领域的重大突破。这一新特性不仅释放了现代硬件的潜能,更让Java应用性能实现了飙升。我们有理由相信,在未来的发展中,Java将继续引领编程语言的潮流,为开发者们带来更加高效、更加强大的编程体验。让我们共同期待Java在SIMD技术的推动下开启一个全新的性能提升时代!