我的一个方法在循环中返回String []数组。当循环连续时,我想将这些String []数组添加到另一个String []数组中。我想要下面这样的东西。它给ype不匹配:无法从String []转换为String错误。
String[] searchResultList = new String[25];
int count = 0;
for (...) {
String[] resultList = getArray(parameter);
searchResultList[count] = resultList;
count++;
}
答案 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
- 即一个字符串数组,一些字符串 - 即只有一个字符串。你可以把一个袋子直接放在另一个袋子里,你需要先从袋子里拿出东西。
所以你需要做的是:
resultList
数组中的条目逐个添加到searchResultList
数组searchResultList
数组的大小以容纳所有新值或者,一个更好的解决方案,你可以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<>();
这可能会奏效,我还没有尝试过