繁体   English   中英

如何在Java中串联字符串数组

[英]How to concatenate string arrays in Java

我想知道如何在Java中连接4个字符串数组。

已经有一个问题了。 如何在Java中连接两个数组?

但是我试图复制它,但是它对我不起作用。

这是我的代码如下所示:

调用方法:

concatAll(jobs1, jobs2, jobs3, jobs4);

方法本身:

public String[] concatAll(String[] jobsA, String[] jobsB, String[] jobsC, String[] jobsD) {
    int totalLength = jobsA.length;
    for (String[] array : jobsD) {
        totalLength += array.length;
    }

    String[] result = Arrays.copyOf(jobsA, totalLength);

    int offset = jobsA.length;

    for (String[] array : jobsD) {
        System.arraycopy(array, 0, result, offset, array.length);
        offset += array.length;
    }
    return result;
}

抛开检查数组是否为null之类的事情,您可以为其创建通用方法,并在您的特定情况下使用它,如下所示:

    public String[] concatAll(String[] jobsA, String[] jobsB, String[] jobsC, String[] jobsD) 
    {
        return generalConcatAll (jobsA, jobsB, jobsC, jobsD);
    }

    public String[] generalConcatAll(String[]... jobs) {
        int len = 0;
        for (final String[] job : jobs) {
            len += job.length;
        }

        final String[] result = new String[len];

        int currentPos = 0;
        for (final String[] job : jobs) {
            System.arraycopy(job, 0, result, currentPos, job.length);
            currentPos += job.length;
        }

        return result;
    }

这更加简洁,可以使用Apache Commons Lang库正确处理所有null情况。 ArrayUtils.addAll(T[], T...)

public String[] generalConcatAll(String[]...arrays) {

    String[] result = null;

    for(String[] array : arrays) {
         result = ArrayUtils.addAll(result, array);
    }

    return result;

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM