Java中常见字符串拼接方式

+运算符拼接

在Java中,可以使用"+"运算符来拼接字符串。当一个字符串与其他数据类型(如整数、浮点数等)相加时,Java会自动将其他数据类型转换为字符串,然后进行拼接。

下面是一个示例代码:

java 复制代码
String str1 = "Hello";
String str2 = "World";
int num = 2021;

String result = str1 + " " + str2 + ", " + num;
System.out.println(result);

输出结果为:

yaml 复制代码
Hello World, 2021

在上面的代码中,使用"+"运算符将字符串str1、空格、字符串str2、逗号和整数num拼接在一起,并将结果赋给变量result。然后使用System.out.println()方法将结果输出到控制台。

StringBuilder.append()和StringBuffer.append()

StringBuilder.append()StringBuffer.append()都是用于字符串拼接的方法,它们的作用是将指定的字符串追加到当前字符串的末尾。

主要区别在于StringBuilder是非线程安全的,而StringBuffer是线程安全的。

  • StringBuilderStringBuilder是在Java 5中引入的,它的设计目的是为了提供一个高效的可变字符串操作类。由于StringBuilder是非线程安全的,所以在单线程环境下使用StringBuilder的效率更高。
  • StringBufferStringBuffer是在早期版本的Java中引入的,它与StringBuilder的功能相似,但是StringBuffer是线程安全的,可以在多线程环境下使用。

因此,如果在单线程环境下进行字符串拼接操作,建议使用StringBuilder,而在多线程环境下进行字符串拼接操作,建议使用StringBuffer

示例代码:

java 复制代码
StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.append(" ");
sb.append("World");
String result = sb.toString(); // "Hello World"

StringBuffer sbf = new StringBuffer();
sbf.append("Hello");
sbf.append(" ");
sbf.append("World");
String result = sbf.toString(); // "Hello World"

注意:在大部分情况下,推荐使用StringBuilder,因为它的性能更好。只有在多线程环境下需要保证线程安全时,才使用StringBuffer

String的concat()方法

concat()方法是String类中的一个方法,用于将指定的字符串连接到原字符串的末尾,并返回一个新的字符串。它的语法如下:

java 复制代码
public String concat(String str)

其中,str是要连接的字符串。调用concat()方法后,会将str连接到原字符串的末尾,并返回一个新的字符串。

例如,假设有一个字符串str1为"Hello",要将字符串" World"连接到str1的末尾,可以使用concat()方法:

java 复制代码
String str1 = "Hello";
String str2 = str1.concat(" World");
System.out.println(str2);  // 输出:Hello World

注意,concat()方法不会修改原字符串,而是返回一个新的字符串。如果需要修改原字符串,可以将返回值赋给原字符串。如果拼接的字符串是一个空字符串(""),那么concat的效率要更高。如果拼接的字符串非常多,concat的效率就会下降,因为创建的字符串对象多开销大。

concat()方法可以用于连接任意数量的字符串,只需要连续调用concat()方法即可。例如:

java 复制代码
String str1 = "Hello";
String str2 = str1.concat(" World").concat("!");
System.out.println(str2);  // 输出:Hello World!

以上就是String类中的concat()方法的用法。

注意如果拼接的字符串是null,concat会抛出NullPointerException。

String的join()方法

JDK1.8 String类增加了一个静态方法join String类的join()方法用于将多个字符串连接成一个字符串,可以指定连接符。

方法:

java 复制代码
public static String join(CharSequence delimiter, CharSequence... elements)

参数说明:

  • delimiter:连接符,用于将多个字符串连接起来。
  • elements:要连接的多个字符串。

示例代码:

java 复制代码
String[] words = {"Hello", "World", "!"};
String result = String.join(" ", words);
System.out.println(result);

输出结果:

复制代码
Hello World !

在上述示例中,使用空格作为连接符,将数组words中的字符串连接成一个字符串。

StringJoiner

StringJoiner是JDK1.8,java.util包中的一个类,用于将多个字符串连接成一个字符串。它提供了一种简单的方式来构建以指定分隔符分隔的字符串。

使用StringJoiner的基本步骤如下:

  1. 创建一个StringJoiner对象,可以指定分隔符和可选的前缀和后缀。
  2. 使用add方法将要连接的字符串逐个添加到StringJoiner中。
  3. 使用toString方法获取最终的连接字符串。

以下是一个示例代码:

java 复制代码
StringJoiner joiner = new StringJoiner(", ", "[", "]");
joiner.add("apple");
joiner.add("banana");
joiner.add("orange");
String result = joiner.toString();
System.out.println(result);

输出结果为:[apple, banana, orange]

使用StringJoiner可以方便地将多个字符串连接成一个字符串,并且可以指定分隔符和前缀后缀,非常适用于构建CSV文件、SQL语句等场景。

apache的StringUtils.join()

StringUtils.join()是Apache Commons Lang库中的一个方法,用于将一个数组或集合中的元素连接成一个字符串。

使用方法如下:

java 复制代码
import org.apache.commons.lang3.StringUtils;

public class Example {
    public static void main(String[] args) {
        String[] array = {"apple", "banana", "orange"};
        String result = StringUtils.join(array, ", ");
        System.out.println(result);
    }
}

上述代码将输出:apple, banana, orange

StringUtils.join()方法接受两个参数:要连接的数组或集合,以及连接元素之间的分隔符。在上述例子中,我们使用了逗号和空格作为分隔符。

如果要连接的数组或集合中包含了null元素,StringUtils.join()方法会将其忽略。如果要连接的数组或集合为null或空,方法会返回一个空字符串。

相关推荐
一只叫煤球的猫4 小时前
写代码很6,面试秒变菜鸟?不卖课,面试官视角走心探讨
前端·后端·面试
bobz9654 小时前
tcp/ip 中的多路复用
后端
bobz9654 小时前
tls ingress 简单记录
后端
皮皮林5515 小时前
IDEA 源码阅读利器,你居然还不会?
java·intellij idea
你的人类朋友5 小时前
什么是OpenSSL
后端·安全·程序员
bobz9656 小时前
mcp 直接操作浏览器
后端
前端小张同学8 小时前
服务器部署 gitlab 占用空间太大怎么办,优化思路。
后端
databook8 小时前
Manim实现闪光轨迹特效
后端·python·动效
武子康9 小时前
大数据-98 Spark 从 DStream 到 Structured Streaming:Spark 实时计算的演进
大数据·后端·spark
该用户已不存在9 小时前
6个值得收藏的.NET ORM 框架
前端·后端·.net