You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java如何实现多个字符串按同位置字符垂直拼接生成目标格式

解决方案

实现思路

  • 将所有输入字符串存入可变参数列表,适配任意数量的列,不用硬编码每个字符串变量
  • 自动计算所有输入字符串的最大长度作为行数,适配不定长的输入内容
  • 增加边界校验,避免字符串长度不一致导致的索引越界错误
  • 使用StringBuilder做字符串拼接,比直接String+=性能提升明显,尤其适合数据量大的场景

完整代码示例

public class StringConvertUtil {
    // 通用转换方法,支持传入任意数量的字符串
    public static String convert(String... inputs) {
        // 入参为空直接返回空字符串
        if (inputs == null || inputs.length == 0) {
            return "";
        }
        // 计算所有字符串的最大长度,作为循环行数
        int maxLength = 0;
        for (String s : inputs) {
            if (s != null && s.length() > maxLength) {
                maxLength = s.length();
            }
        }
        StringBuilder resultBuilder = new StringBuilder();
        // 外层循环遍历每行(对应每个字符索引)
        for (int i = 0; i < maxLength; i++) {
            // 内层循环遍历每列(对应每个输入字符串)
            for (int j = 0; j < inputs.length; j++) {
                String currentStr = inputs[j];
                // 当前索引小于字符串长度时取对应字符,否则补空,可自定义占位符
                char c = (currentStr != null && i < currentStr.length()) ? currentStr.charAt(i) : ' ';
                resultBuilder.append(c);
                // 不是最后一列的话加逗号分隔
                if (j != inputs.length - 1) {
                    resultBuilder.append(", ");
                }
            }
            // 每行结束加换行
            resultBuilder.append("\n");
        }
        return resultBuilder.toString();
    }

    public static void main(String[] args) {
        String a = "ABC";
        String b = "BCD";
        String c = "CDE";
        // 后续新增d、e、f等字符串时,直接在参数列表追加即可
        String result = convert(a, b, c);
        System.out.println(result);
    }
}

输出效果

运行代码后输出和要求的格式完全一致:

A, B, C
B, C, D
C, D, E

扩展说明

如果要求所有输入字符串长度必须一致,可以在计算maxLength的步骤增加校验逻辑,长度不一致时直接抛出异常即可。

内容的提问来源于stack exchange,提问作者Karord

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 15:06:01