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