[英]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.