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