我想在我的数组中使用split()方法。但是,我不能使用单个数组。这是我的代码:
output_list = [1 2 3 4,5 6 7 8,9 8 7 6]
Arraylist<String> output_list = new ArrayList<String>();
String[][] test = new String[output_list.size()][];
for(int i=0; i<output_list.size();i++)
{
String temp = output_list.get(i);
test[i] = temp.split(" ");
}
我想只使用单个数组test []。在使用.split()分割数据后,output_list中的项将插入test []。但问题是当我将String test [] []更改为test []时; 我得到了不兼容的类型错误。任何人都可以告诉我它为什么会发生?我使用java
答案 0 :(得分:1)
我建议使用临时列表并在最后转换为数组。
List<String> output_list = new ArrayList<String>();
//add test values
output_list.add("1 2 3 4");
output_list.add("5 6 7 8");
output_list.add("9 8 7 6");
//temporary list used until converted to an array at the end
List<String> temp = new ArrayList<String>();
//iterate over each string in the output_list
for(String group : output_list){
//1. split each group into individual strings
//2. Convert the array returned from split into a list
//3. Add that list to the temp list
temp.addAll(Arrays.asList(group.split(" ")));
}
//convert the temp list into a string array
String[] test = temp.toArray(new String[temp.size()]);
答案 1 :(得分:0)
如果output_list中的数据结构定义良好,则可以采用替代方法。如果列表中的每个字符串只有4个元素,那么您可以使用System.arrayCopy例程将拆分字符串移动到测试数组中。
List<String> output_list = new ArrayList<String>();
//add test values
output_list.add("1 2 3 4");
output_list.add("5 6 7 8");
output_list.add("9 8 7 6");
//This assumes that each string will always have 4 elements
String[] test = new String[4 * output_list.size()];
//iterate over each string in the output_list
for(int i = 0; i < output_list.size(); i++){
String group = output_list.get(i);
//1. split each group into individual strings
//2. Copy the values into the test array
System.arraycopy(group.split(" "), 0, test, i * 4, 4);
}