如何使用String.join()结合数组将散乱的控制台参数拼接成带分隔符的字符串?
- 内容介绍
- 相关推荐
本文共计536个文字,预计阅读时间需要3分钟。
相关专题
用 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() 拼接控制台参数生成带分隔符的报文,核心是把 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

