java常见的字符串拼接方式总结

 更新时间:2023年09月19日 16:33:17   作者:Raysen  
这篇文章主要为大家详细介绍了java中常见的字符串拼接方式,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下

+运算符拼接

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

下面是一个示例代码:

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

输出结果为:

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

示例代码:

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类中的一个方法,用于将指定的字符串连接到原字符串的末尾,并返回一个新的字符串。它的语法如下:

public String concat(String str)

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

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

String str1 = "Hello";
String str2 = str1.concat(" World");
System.out.println(str2);  // 输出:Hello World

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

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

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()方法用于将多个字符串连接成一个字符串,可以指定连接符。

方法:

public static String join(CharSequence delimiter, CharSequence... elements)

参数说明:

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

示例代码:

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

输出结果:

Hello World !

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

StringJoiner

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

使用StringJoiner的基本步骤如下:

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

以下是一个示例代码:

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库中的一个方法,用于将一个数组或集合中的元素连接成一个字符串。

使用方法如下:

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或空,方法会返回一个空字符串。

以上就是java常见的字符串拼接方式总结的详细内容,更多关于java字符串拼接的资料请关注脚本之家其它相关文章!

相关文章

  • jsp如何获取Session中的值

    jsp如何获取Session中的值

    这篇文章主要介绍了jsp如何获取Session中的值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • 解决SpringMVC项目连接RabbitMQ出错的问题

    解决SpringMVC项目连接RabbitMQ出错的问题

    这篇文章主要介绍了解决SpringMVC项目连接RabbitMQ出错的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • idea数据库驱动下载失败的问题及解决

    idea数据库驱动下载失败的问题及解决

    这篇文章主要介绍了idea数据库驱动下载失败的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • 详解Java线程同步器CountDownLatch

    详解Java线程同步器CountDownLatch

    这篇文章主要介绍了Java线程同步器CountDownLatch的相关资料,帮助大家更好的理解和学习Java,感兴趣的朋友可以了解下
    2020-09-09
  • SpringBoot2.0整合WebSocket代码实例

    SpringBoot2.0整合WebSocket代码实例

    这篇文章主要介绍了SpringBoot2.0整合WebSocket代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • java求余的技巧汇总

    java求余的技巧汇总

    这篇文章主要给大家介绍了关于java求余技巧的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • Java中如何自定义一个类加载器

    Java中如何自定义一个类加载器

    这篇文章主要介绍了Java中如何自定义一个类加载器,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • java实现手写一个简单版的线程池

    java实现手写一个简单版的线程池

    有些人可能对线程池比较陌生,并且更不熟悉线程池的工作原理。本文就来手写一个简单版的线程池,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • IDEA中sout快捷键无效问题的解决方法

    IDEA中sout快捷键无效问题的解决方法

    这篇文章主要介绍了IDEA中sout快捷键无效问题,在类文件中进行操作会造成sout快捷命令无法自动生成,比如操作了import引入其它包之后,本文给大家分享解决方法,感兴趣的朋友一起看看吧
    2022-07-07
  • Spring七大事务传递机制深入分析实现原理

    Spring七大事务传递机制深入分析实现原理

    实际项目开发中,如果涉及到多张表操作时,为了保证业务数据的一致性,大家一般都会采用事务机制,好多小伙伴可能只是简单了解一下,遇到事务失效的情况,便会无从下手,下面这篇文章主要给大家介绍了关于Spring事务传递机制的相关资料,需要的朋友可以参考下
    2023-03-03

最新评论