当前位置:首页 > 科技  > 软件

Java中常见字符串拼接方式

来源: 责编: 时间:2023-11-01 09:19:15 220观看
导读+运算符拼接在Java中,可以使用"+"运算符来拼接字符串。当一个字符串与其他数据类型(如整数、浮点数等)相加时,Java会自动将其他数据类型转换为字符串,然后进行拼接。下面是一个示例代码:String str1 = "Hello";String str2

dNF28资讯网——每日最新资讯28at.com

+运算符拼接

在Java中,可以使用"+"运算符来拼接字符串。当一个字符串与其他数据类型(如整数、浮点数等)相加时,Java会自动将其他数据类型转换为字符串,然后进行拼接。dNF28资讯网——每日最新资讯28at.com

下面是一个示例代码:dNF28资讯网——每日最新资讯28at.com

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

输出结果为:dNF28资讯网——每日最新资讯28at.com

Hello World, 2021

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

StringBuilder.append()和StringBuffer.append()

StringBuilder.append()和StringBuffer.append()都是用于字符串拼接的方法,它们的作用是将指定的字符串追加到当前字符串的末尾。dNF28资讯网——每日最新资讯28at.com

主要区别在于StringBuilder是非线程安全的,而StringBuffer是线程安全的。dNF28资讯网——每日最新资讯28at.com

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

因此,如果在单线程环境下进行字符串拼接操作,建议使用StringBuilder,而在多线程环境下进行字符串拼接操作,建议使用StringBuffer。dNF28资讯网——每日最新资讯28at.com

示例代码:dNF28资讯网——每日最新资讯28at.com

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。dNF28资讯网——每日最新资讯28at.com

String的concat()方法

concat()方法是String类中的一个方法,用于将指定的字符串连接到原字符串的末尾,并返回一个新的字符串。它的语法如下:dNF28资讯网——每日最新资讯28at.com

public String concat(String str)

其中,str是要连接的字符串。调用concat()方法后,会将str连接到原字符串的末尾,并返回一个新的字符串。dNF28资讯网——每日最新资讯28at.com

例如,假设有一个字符串str1为"Hello",要将字符串" World"连接到str1的末尾,可以使用concat()方法:dNF28资讯网——每日最新资讯28at.com

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

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

concat()方法可以用于连接任意数量的字符串,只需要连续调用concat()方法即可。例如:dNF28资讯网——每日最新资讯28at.com

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

以上就是String类中的concat()方法的用法。dNF28资讯网——每日最新资讯28at.com

注意:如果拼接的字符串是null,concat会抛出NullPointerException。dNF28资讯网——每日最新资讯28at.com

String的join()方法

JDK1.8 String类增加了一个静态方法join String类的join()方法用于将多个字符串连接成一个字符串,可以指定连接符。dNF28资讯网——每日最新资讯28at.com

方法:dNF28资讯网——每日最新资讯28at.com

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

参数说明:dNF28资讯网——每日最新资讯28at.com

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

示例代码:dNF28资讯网——每日最新资讯28at.com

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

输出结果:dNF28资讯网——每日最新资讯28at.com

Hello World !

在上述示例中,使用空格作为连接符,将数组words中的字符串连接成一个字符串。dNF28资讯网——每日最新资讯28at.com

StringJoiner

StringJoiner是JDK1.8,java.util包中的一个类,用于将多个字符串连接成一个字符串。它提供了一种简单的方式来构建以指定分隔符分隔的字符串。dNF28资讯网——每日最新资讯28at.com

使用StringJoiner的基本步骤如下:dNF28资讯网——每日最新资讯28at.com

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

以下是一个示例代码:dNF28资讯网——每日最新资讯28at.com

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

输出结果为:[apple, banana, orange]dNF28资讯网——每日最新资讯28at.com

使用StringJoiner可以方便地将多个字符串连接成一个字符串,并且可以指定分隔符和前缀后缀,非常适用于构建CSV文件、SQL语句等场景。dNF28资讯网——每日最新资讯28at.com

apache的StringUtils.join()

StringUtils.join()是Apache Commons Lang库中的一个方法,用于将一个数组或集合中的元素连接成一个字符串。dNF28资讯网——每日最新资讯28at.com

使用方法如下:dNF28资讯网——每日最新资讯28at.com

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, orangedNF28资讯网——每日最新资讯28at.com

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

如果要连接的数组或集合中包含了null元素,StringUtils.join()方法会将其忽略。如果要连接的数组或集合为null或空,方法会返回一个空字符串。dNF28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-16294-0.htmlJava中常见字符串拼接方式

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: C++中的命名空间(namespace):概念、用法和优秀实践

下一篇: 压测工具合集:解锁您应用程序的真正性能潜力

标签:
  • 热门焦点
  • 小米平板5 Pro 12.4简评:多专多能 兼顾影音娱乐的大屏利器

    小米平板5 Pro 12.4简评:多专多能 兼顾影音娱乐的大屏利器

    疫情带来了网课,网课盘活了安卓平板,安卓平板市场虽然中途停滞了几年,但好的一点就是停滞的这几年行业又有了新的发展方向,例如超窄边框、高刷新率、多摄镜头组合等,这就让安卓
  • vivo TWS Air开箱体验:真轻 臻好听

    vivo TWS Air开箱体验:真轻 臻好听

    在vivo S15系列新机的发布会上,vivo的最新款真无线蓝牙耳机vivo TWS Air也一同发布,本次就这款耳机新品给大家带来一个简单的分享。外包装盒上,vivo TWS Air保持了vivo自家产
  • Rust中的高吞吐量流处理

    Rust中的高吞吐量流处理

    作者 | Noz编译 | 王瑞平本篇文章主要介绍了Rust中流处理的概念、方法和优化。作者不仅介绍了流处理的基本概念以及Rust中常用的流处理库,还使用这些库实现了一个流处理程序
  • Python异步IO编程的进程/线程通信实现

    Python异步IO编程的进程/线程通信实现

    这篇文章再讲3种方式,同时讲4中进程间通信的方式一、 Python 中线程间通信的实现方式共享变量共享变量是多个线程可以共同访问的变量。在Python中,可以使用threading模块中的L
  • 2023年,我眼中的字节跳动

    2023年,我眼中的字节跳动

    此时此刻(2023年7月),字节跳动从未上市,也从未公布过任何官方的上市计划;但是这并不妨碍它成为中国最受关注的互联网公司之一。从2016-17年的抖音强势崛起,到2018年的“头腾
  • ESG的面子与里子

    ESG的面子与里子

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之三伏大幕拉起,各地高温预警不绝,但处于厄尔尼诺大“烤”之下的除了众生,还有各大企业发布的ESG报告。ESG是“环境保
  • 东方甄选单飞:有些鸟注定是关不住的

    东方甄选单飞:有些鸟注定是关不住的

    文/彭宽鸿编辑/罗卿东方甄选创始人俞敏洪带队的“7天甘肃行”直播活动已在近日顺利收官。成立后一年多时间里,东方甄选要脱离抖音自立门户的传闻不绝于耳,“7
  • 华为和江淮汽车合作开发百万元问界MPV?双方回应来了

    华为和江淮汽车合作开发百万元问界MPV?双方回应来了

    8月1日消息,郭明錤今天在社交平台发文称,华为正在和江淮汽车合作,开发售价在100万元的问界MPV,预计在2024年第2季度量产,销量目标为上市首年交付5万辆。
  • 荣耀Magicbook V 14 2021曙光蓝版本正式开售,拥有触摸屏

    荣耀Magicbook V 14 2021曙光蓝版本正式开售,拥有触摸屏

    荣耀 Magicbook V 14 2021 曙光蓝版本正式开售,搭载 i7-11390H 处理器与 MX450 显卡,配备 16GB 内存与 512GB SSD,重 1.48kg,厚 14.5mm,具有 1.5mm 键盘键程、
Top