有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将字符串[]数组添加到另一个字符串[]数组

我的一个方法在循环中返回String[]数组。循环继续时,我想将这些字符串[]数组添加到另一个字符串[]数组中。我想要下面给出的类似的东西。它导致类型不匹配:无法从字符串[]转换为字符串错误

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

共 (6) 个答案

  1. # 1 楼答案

    您的问题是,您试图在一个存储String的数组中存储一个String[],即一个字符串数组,多个字符串,即仅存储单个字符串。你可以直接把一个袋子放进另一个袋子里,你需要先把袋子里的东西拿出来

    所以你需要做的是:

    1. 将返回的resultList数组中的条目逐个添加到searchResultList数组中
    2. 并确保更改searchResultList数组的大小以保存所有新值

    或者,更好的解决方案是use a ^{},因为它们会自动增长,并允许您一次添加多个项目:

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

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

    这里,resultList是数组。。 但searchResultList[count]是字符串。。 因此,您会得到“无法从字符串[]转换为字符串错误” 你能用的更好

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

    。。 用这个。现在你可以用声明

  3. # 3 楼答案

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

  4. # 4 楼答案

    你的searchResultList变量存储了String个元素,但是你尝试向它添加一个String[],所以这是正常的

    为什么不让searchResultList成为ArrayList<String>,同时getArray()也返回这样的数组列表呢?这样,你所要做的就是searchResultList.add(getArray(parameter));

  5. # 5 楼答案

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

    要么你需要把你的searchResultList变成一个数组的字符串数组(String[][]),要么你需要把resultList中的所有字符串复制到searchResultList

    无论你选择哪种方式,你都应该考虑使用^ {< CD5>}而不是数组…这样就不需要硬编码数组大小的任意上限,因为列表可能会增加

  6. # 6 楼答案

    你说你需要使用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()]);