如何在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; }