将String []数组添加到另一个String []数组中

时间:2011-12-14 10:21:12

标签: java arrays string

我的一个方法在循环中返回String []数组。当循环连续时,我想将这些String []数组添加到另一个String []数组中。我想要下面这样的东西。它给ype不匹配:无法从String []转换为String错误。

String[] searchResultList = new String[25];
int count = 0;
for (...) {
          String[] resultList = getArray(parameter);
          searchResultList[count] = resultList;
          count++;
        }

9 个答案:

答案 0 :(得分:6)

您已尝试将字符串数组的元素设置为另一个字符串数组。你不能这样做。

您需要制作字符串数组的searchResultList 数组String[][]),或者需要复制中的所有字符串 { {1}} resultList

无论你选择哪种方式,你都应该考虑使用searchResultList代替数组...这样你就不需要硬编码数组大小的任意上限,因为列表可以增长。

答案 1 :(得分:0)

您的searchResultList变量存储String元素,但您尝试向其添加String[],这是正常的。

为什么不让searchResultList成为ArrayList<String>,而getArray()也会返回这样的ArrayList?这样,您所要做的就是searchResultList.add(getArray(parameter));

答案 2 :(得分:0)

你应该使用ArrayUtils.addAll(..)将一个数组中的所有元素添加到另一个数组中。

答案 3 :(得分:0)

你的问题是你试图在一个存储String[]的数组中存储一个String - 即一个字符串数组,一些字符串 - 即只有一个字符串。你可以把一个袋子直接放在另一个袋子里,你需要先从袋子里拿出东西。

所以你需要做的是:

  1. 将返回的resultList数组中的条目逐个添加到searchResultList数组
  2. 并确保更改searchResultList数组的大小以容纳所有新值
  3. 或者,一个更好的解决方案,你可以use a List,因为它们会自动增长并允许你一次添加多个项目:

    List<String> searchResultList = new ArrayList<String>();
    for (...) {
        String[] resultList = getArray(parameter);
        searchResultList.addAll(Arrays.asList(resultList));
    }
    

答案 4 :(得分:0)

您说您需要使用String []而不是List。但是没有什么能阻止你在方法中内部使用List并返回一个数组,例如

    List<String> searchResult = new ArrayList<String>();
    for (?) {
        String[] resultList = getArray(parameter);
        searchResult.addAll(Arrays.asList(resultList));
    }
    return searchResult.toArray(new String[searchResult.size()]);

答案 5 :(得分:0)

String[] resultList = getArray(parameter);
searchResultList[count] = resultList;

这里,resultList是数组.. 但是searchResultList [count]是String .. 所以你得到“无法从String []转换为String错误。” 更好的你可以使用

String[] resultList = getArray(parameter);
searchResultList[count] = resultList[count];

.. 使用this.Now你可以得到声明

答案 6 :(得分:0)

Add String[] array to another String[] array


  public static String[] addAll(String[] array1, String... array2) {
            if (array1 == null) {
                return array2;
            } else if (array2 == null) {
                return array1;
            } else {
                String[] joinedArray = new String[array1.length + array2.length];
                System.arraycopy(array1, 0, joinedArray, 0, array1.length);
                System.arraycopy(array2, 0, joinedArray, array1.length, array2.length);
                return joinedArray;
            }
        }

答案 7 :(得分:0)

为了将字符串的现有数组添加到另一个数组中,我使用:

 private ArrayList<String> concatArray(ArrayList<String> TabEvenHis) {
        ArrayList<String> TabFin = new ArrayList<String>();
        String sEven; 
        for (int i = 0; i < TabEvenHis.size(); i++) {
            sEven = TabEvenHis.get(i);
            TabFin.add(sEven);
        }
        return TabFin;
    }

致电:

MyArrayExisting=concatArray(ArrayToAdd);

答案 8 :(得分:-1)

ArrayList<ArrayList> myDoubleArray = new ArrayList<>();

这可能会奏效,我还没有尝试过