我有两个方法,它们都返回String数组。现在,我有另一种方法,所以,我想使用这两个方法返回的数组。所以,单字符串数组将在那里,它将包含这两种方法返回的数组。那么,我该怎么做? 我的代码就像
private String[] getAllRZFiles() {
FilenameFilter filenamefilter = new RegexFileFilter("^" + PREFIX_RZ_FILES + ".*\\" + SUFFIX_RZ_FILES + "$");
// FilenameFilter filenameFilterJob = new RegexFileFilter("^(" + PREFIX_RZ_FILES + ".*\\" + SUFFIX_RZ_FILES + "|" + PREFIX_RZJD_FILES + ".*\\" +SUFFIX_RZ_FILES + ")$");
return new File(AppConstants.GAZETTEER_PATH).list(filenamefilter);
}
private String[] getAllCommonFiles(){
FilenameFilter filenamefilter = new RegexFileFilter("^" + PREFIX_CO_FILES + ".*\\" + SUFFIX_RZ_FILES + "$");
return new File(AppConstants.GAZETTEER_PATH).list(filenamefilter);
}
这是我的两种方法。
我想在
中使用它public String getcontent() throws Exception{
String [] result ;
}
这里在结果数组中,我想要两种方法的输出。
答案 0 :(得分:4)
您可以使用System.arraycopy
public static <T> T[] concat(T[] first, T[] second) {
T[] result = Arrays.copyOf(first, first.length + second.length);
System.arraycopy(second, 0, result, first.length, second.length);
return result;
}
或者在Java 8中,您可以使用stream
String[] both = Stream.concat(Arrays.stream(a), Arrays.stream(b))
.toArray(String[]::new);
答案 1 :(得分:1)
尝试将字符串数组合并为一个。
您可以使用Apache Commons Lang库
String[] both = (String[])ArrayUtils.addAll(firstArr, secondArr);
或强>
如果添加第三方库被认为是一种矫枉过正,那么我会使用Java的ArrayList,
List<String> resultList = new ArrayList<String>();
我将迭代两个字符串数组并将结果字符串添加到ArrayList。
resultList.add("array-A-and-B-Result");
最后将arrayList转换回字符串数组,或者您只需将其他fn的参数更改为ArrayList,因为它更容易操作元素。
String[] combinedResult = new String[resultList.size()];
combinedResult = resultList.toArray(combinedResult);
答案 2 :(得分:1)
使用Apache Commons Lang Library,您可以使用类似
的内容String[] result = (String[]) ArrayUtils.addAll(array1, array2);
答案 3 :(得分:0)
没有任何库,您可以手动方式执行:
String[] both = new String[firstArray.length + secondArray.length];
for (int i=0; i<firstArray.length; i++) { both[i]=firstArray[i]; }
for (int j=0; j<secondArray.length; j++) { both[firstArray.length+j]=secondArray[j]; }
或者使用arrayCopy:
both = new String[firstArray.length + secondArray.length];
System.arraycopy(firstArray, 0, both, 0, firstArray.length);
System.arraycopy(secondArray, 0, both, firstArray.length, secondArray.length);
或者使用列表:
List<String> bothAsList = Arrays.asList(firstArray);
bothAsList.addAll(Arrays.asList(secondArray));
both = bothAsList.toArray(new String[0]);