如何使用String.join()结合数组将散乱的控制台参数拼接成带分隔符的字符串?

2026-05-07 20:471阅读0评论SEO资讯
  • 内容介绍
  • 相关推荐

本文共计536个文字,预计阅读时间需要3分钟。

如何使用String.join()结合数组将散乱的控制台参数拼接成带分隔符的字符串?

相关专题

string.join() 拼接控制台参数生成带分隔符的报文,核心是把 args 数组(或任意字符串数组)直接传入,无需手动循环或 stringbuilder。

确认参数来源是字符串数组

Java 的 main(String[] args) 方法天然提供命令行参数数组。只要用户运行时输入参数,args 就是非 null 的字符串数组(可能为空)。

例如运行:
java MyApp order123 2024-05-20 PAY SUCCESS
此时 args = {"order123", "2024-05-20", "PAY", "SUCCESS"}

用 String.join() 直接拼接

语法简洁明确:
String.join(分隔符, 字符串数组)

常见用法示例:

  • 用竖线 | 分隔: String.join("|", args)"order123|2024-05-20|PAY|SUCCESS"
  • 用冒号 : 分隔: String.join(":", args)"order123:2024-05-20:PAY:SUCCESS"
  • 用制表符 \t 分隔(适合日志或导出): String.join("\t", args)

处理边界情况更健壮

虽然 String.join() 对 null 数组会抛 NullPointerException,但 args 由 JVM 保证不为 null;不过空数组或含空字符串需按业务判断是否过滤:

  • 保留所有项(含空字符串):直接 String.join("|", args)
  • 跳过空字符串:先流式过滤再拼接 Arrays.stream(args).filter(s -> !s.isEmpty()).collect(Collectors.joining("|"))
  • 添加固定头尾(如报文起始标记):"START|" + String.join("|", args) + "|END"

完整可运行示例

以下代码接收命令行参数,以 | 拼成报文并打印:

public class MsgBuilder { public static void main(String[] args) { String message = String.join("|", args); System.out.println(message); } }

运行效果:
java MsgBuilder hello world 123 → 输出 hello|world|123

本文共计536个文字,预计阅读时间需要3分钟。

如何使用String.join()结合数组将散乱的控制台参数拼接成带分隔符的字符串?

相关专题

string.join() 拼接控制台参数生成带分隔符的报文,核心是把 args 数组(或任意字符串数组)直接传入,无需手动循环或 stringbuilder。

确认参数来源是字符串数组

Java 的 main(String[] args) 方法天然提供命令行参数数组。只要用户运行时输入参数,args 就是非 null 的字符串数组(可能为空)。

例如运行:
java MyApp order123 2024-05-20 PAY SUCCESS
此时 args = {"order123", "2024-05-20", "PAY", "SUCCESS"}

用 String.join() 直接拼接

语法简洁明确:
String.join(分隔符, 字符串数组)

常见用法示例:

  • 用竖线 | 分隔: String.join("|", args)"order123|2024-05-20|PAY|SUCCESS"
  • 用冒号 : 分隔: String.join(":", args)"order123:2024-05-20:PAY:SUCCESS"
  • 用制表符 \t 分隔(适合日志或导出): String.join("\t", args)

处理边界情况更健壮

虽然 String.join() 对 null 数组会抛 NullPointerException,但 args 由 JVM 保证不为 null;不过空数组或含空字符串需按业务判断是否过滤:

  • 保留所有项(含空字符串):直接 String.join("|", args)
  • 跳过空字符串:先流式过滤再拼接 Arrays.stream(args).filter(s -> !s.isEmpty()).collect(Collectors.joining("|"))
  • 添加固定头尾(如报文起始标记):"START|" + String.join("|", args) + "|END"

完整可运行示例

以下代码接收命令行参数,以 | 拼成报文并打印:

public class MsgBuilder { public static void main(String[] args) { String message = String.join("|", args); System.out.println(message); } }

运行效果:
java MsgBuilder hello world 123 → 输出 hello|world|123