Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将字符串[]数组添加到另一个字符串[]数组_Java_Arrays_String - Fatal编程技术网

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

Java 将字符串[]数组添加到另一个字符串[]数组,java,arrays,string,Java,Arrays,String,我的一个方法在循环中返回String[]数组。循环继续时,我想将这些字符串[]数组添加到另一个字符串[]数组中。我想要下面给出的类似的东西。它导致类型不匹配:无法从字符串[]转换为字符串错误 String[] searchResultList = new String[25]; int count = 0; for (...) { String[] resultList = getArray(parameter); searchResultList[cou

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

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

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

您需要将
searchResultList
设置为字符串数组的数组(
string[][]
),或者需要将
resultList
中的所有字符串复制到
searchResultList


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

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

您需要将
searchResultList
设置为字符串数组的数组(
string[][]
),或者需要将
resultList
中的所有字符串复制到
searchResultList


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

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


为什么不让
searchResultList
成为一个
ArrayList
,并且
getArray()
也返回这样一个ArrayList呢?这样,您所要做的就是
searchResultList.add(getArray(parameter))

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


为什么不让
searchResultList
成为一个
ArrayList
,并且
getArray()
也返回这样一个ArrayList呢?这样,您所要做的就是
searchResultList.add(getArray(parameter))

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

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

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

因此,您需要做的是:

  • 将返回的
    resultList
    数组中的条目逐个添加到
    searchResultList
    数组中
  • 并确保更改
    searchResultList
    数组的大小以保存所有新值
  • 或者,您可以选择一个更好的解决方案,因为它们会自动增长并允许您一次添加多个项目:

    List<String> searchResultList = new ArrayList<String>();
    for (...) {
        String[] resultList = getArray(parameter);
        searchResultList.addAll(Arrays.asList(resultList));
    }
    
    List searchResultList=new ArrayList();
    对于(…){
    String[]resultList=getArray(参数);
    searchResultList.addAll(Arrays.asList(resultList));
    }
    
    您的问题是,您试图在存储
    字符串的数组中存储一个
    字符串[]
    ——即一个字符串数组,多个字符串,即仅存储单个字符串。你可以直接把一个袋子放在另一个袋子里,你需要先把袋子里的东西拿出来

    因此,您需要做的是:

  • 将返回的
    resultList
    数组中的条目逐个添加到
    searchResultList
    数组中
  • 并确保更改
    searchResultList
    数组的大小以保存所有新值
  • 或者,您可以选择一个更好的解决方案,因为它们会自动增长并允许您一次添加多个项目:

    List<String> searchResultList = new ArrayList<String>();
    for (...) {
        String[] resultList = getArray(parameter);
        searchResultList.addAll(Arrays.asList(resultList));
    }
    
    List searchResultList=new ArrayList();
    对于(…){
    String[]resultList=getArray(参数);
    searchResultList.addAll(Arrays.asList(resultList));
    }
    
    您说您需要使用字符串[]而不是列表。但没有什么可以阻止您在方法内部使用List并返回数组,例如

        List<String> searchResult = new ArrayList<String>();
        for (?) {
            String[] resultList = getArray(parameter);
            searchResult.addAll(Arrays.asList(resultList));
        }
        return searchResult.toArray(new String[searchResult.size()]);
    
    List searchResult=new ArrayList();
    对于(?){
    String[]resultList=getArray(参数);
    searchResult.addAll(Arrays.asList(resultList));
    }
    返回searchResult.toArray(新字符串[searchResult.size()]);
    
    您说您需要使用字符串[]而不是列表。但没有什么可以阻止您在方法内部使用List并返回数组,例如

        List<String> searchResult = new ArrayList<String>();
        for (?) {
            String[] resultList = getArray(parameter);
            searchResult.addAll(Arrays.asList(resultList));
        }
        return searchResult.toArray(new String[searchResult.size()]);
    
    List searchResult=new ArrayList();
    对于(?){
    String[]resultList=getArray(参数);
    searchResult.addAll(Arrays.asList(resultList));
    }
    返回searchResult.toArray(新字符串[searchResult.size()]);
    
    这里,resultList是数组。。 但是searchResultList[count]是字符串。。 因此您得到“无法从字符串[]转换为字符串错误” 你能用的更好

    String[] resultList = getArray(parameter);
    searchResultList[count] = resultList[count];
    
    。。 用这个。现在你可以用这个语句了

    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;
                }
            }
    
    这里,resultList是数组。。 但是searchResultList[count]是字符串。。 因此您得到“无法从字符串[]转换为字符串错误” 你能用的更好

    String[] resultList = getArray(parameter);
    searchResultList[count] = resultList[count];
    
    。。
    使用此选项。现在您可以使用语句获取,以便将现有字符串数组添加到我使用的另一个数组中:

    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;
                }
            }
    
     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;
        }
    

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

     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;
        }
    

    我之所以不使用列表是因为需要。您知道列表有一个
    .toArray()
    操作,不是吗?@imrantariq-您可以使用列表,尽管有这些要求。想想看……我之所以不使用列表,是因为需要。你知道列表有一个
    .toArray()
    操作,不是吗?@imrantariq-你可以使用列表,不管有什么要求。考虑一下……你应该在你的答案中添加一个例子来演示这个问题。下面是结果。例如,将一个字符串数组添加到另一个字符串数组String@MebinJoes是