千家信息网

Java中拼接字符串String的方法有哪些

发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇文章主要介绍"Java中拼接字符串String的方法有哪些"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Java中拼接字符串String的方法有哪些"文章
千家信息网最后更新 2025年01月16日Java中拼接字符串String的方法有哪些

这篇文章主要介绍"Java中拼接字符串String的方法有哪些"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Java中拼接字符串String的方法有哪些"文章能帮助大家解决问题。

1. 前言

Java 提供了拼接 String 字符串的多种方式,不过有时候如果我们不注意 null 字符串的话,可能会把 null 拼接到结果当中,很明显这不是我们想要的。

2. 问题复现

如果我们想要拼接 String 数组,可以简单的使用 + 运算符进行拼接,但是可能会遇到 null 值。

String[] values = {"https", "://", "www.", "wdbyte", ".com", null};String result = "";for (String value : values) {    result = result + value;}

这会将所有元素拼接到结果字符串中,如下所示:

https://www.wdbyte.comnull

但是,我们已经发现问题了,最后的 null 值作为字符串也拼接了下来,这显然不是我们想要的。

同样,即使我们在 Java 8 或更高版本上运行,然后使用String.join() 静态方法拼接字符串,一样会得到带有 null 值的输出。

String[] values = {"https", "://", "www.", "wdbyte", ".com", null};String result = String.join("", values);// output: https://www.wdbyte.comnull

下面看看一些可以避免 null 值被拼接下来的方法,我的期待的输出结果应该是:

https://www.wdbyte.com

3. 使用 + 运算符

加法符号 + 可以拼接 String 字符串,那么我们只需要在拼接时进行 null 判断就可以把 null 值替换为空字符串了。

for (String value : values) {  result = result + (value == null ? "" : value);}

然而,我们知道 String 是一个不可变对象,使用 + 号会频繁的创建字符串对象,每次都会在内存中创建一个新的字符串,所以使用 + 符号来拼接字符串的性能消耗是很高的。

为了方便后续的代码演示,我们抽取一个可以传入字符串,返回一个非 null 字符串的方法。

public String nullToString(String value) {    return value == null ? "" : value;}

因此上面的代码可以改为调用这个方法:

for (String value : values) {    result = result + nullToString(value);}

4. 使用 String.concat()

String.concat() 是 String 类自带的一个方法,使用这种方式拼接字符串十分方便。

for (String value : values) {    result = result.concat(getNonNullString(value));}

因为调用了 nullToString() 方法,因此得到的结果中没有 null 值。

5. 使用 StringBuilder

StringBuilder 类提供了很多有用且方便的 String 构建方法。其中比较常用的是 append() 方法,使用 append() 来拼接字符串,同时结合 nullToString() 方法来避免 null 值。

String[] values = {"https", "://", "www.", "wdbyte", ".com", null};StringBuilder result = new StringBuilder();for (String value : values) {    result = result.append(nullToString(value));}

可以得到如下结果:

https://www.wdbyte.com

6. 使用 StringJoiner 类 (Java 8+)

StringJoiner 类提供了更强大的字符串拼接功能,不仅可以指定拼接时的分隔符,还可以指定拼接时的前缀和后缀,这里我们可以使用它的 add()方法来拼接字符串。

同样的会用 nullToString() 方法来避免 null 值。

String[] values = {"https", "://", "www.", "wdbyte", ".com", null};StringJoiner result = new StringJoiner("");for (String value : values) {    result = result.add(nullToString(value));}

7. 使用 Streams.filter (Java 8+)

Stream API 是 Java 8 引入的功能强大的流式操作类,可以进行常见的过滤、映射、遍历、分组、统计等操作。其中的过滤操作 filter 可以接收一个 Predicate 函数,Predicate 函数接口同之前介绍的 Function (opens new window)接口一样,是一个函数式接口,它可以接受一个泛型 参数,返回值为布尔类型,Predicate 常用于数据过滤。

因此,我们可以定义一个Predicate 来检查为 null 的字符串,然后传递给 Stream API 的 filter() 方法。

最后再使用 Collectors.joining() 方法拼接剩余的非 null 字符串。

String[] values = {"https", "://", "www.", "wdbyte", ".com", null};String result = Arrays.stream(values)    .filter(Objects::nonNull)    .collect(Collectors.joining());

关于"Java中拼接字符串String的方法有哪些"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

字符 字符串 方法 结果 函数 接口 知识 问题 强大 代码 功能 对象 方式 符号 行业 运算符 输出 运算 明显 频繁 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 如何贯彻执行好网络安全法 矿山系统网络技术例题 药品注册与受理数据库 数据库按时间条件删除数据 arcgis软件开发公司 网络安全公司木马入侵 网络安全宣传论坛ppt模板 网络安全e路同行论文 网络安全常见的攻击手段 服务器主板能用台式机散热风扇吗 手机网络安全等级怎么划分 三校生计算机网络技术要考什么 浪潮服务器通电设置 软件开发及系统维护期限 江苏极光网络技术 招聘 魔兽世界服务器 状态怎么查 商丘市网络安全征集投票 美国召开网络安全教育 安徽学生网络技术开发常见问题 管理服务器iis被禁用 扫黄打非网络安全班会教案 数据库财务模块的作用 平度游戏软件开发 网络安全公司木马入侵 智能家居软件开发优惠 戴尔r740服务器能配什么显卡 丰城网络安全教育 网络技术地址聚合 罗定软件开发公司 淮安网络安全审计系统咨询机构
0