一个数组

时间:2016-05-13 09:04:19

标签: java arrays

我有两个方法,它们都返回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 ;

}

这里在结果数组中,我想要两种方法的输出。

4 个答案:

答案 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]);