2012-12-12 50 views
2

在此先感谢您的帮助!基本上我有一个数组列表,每行三个单词用逗号分隔。我想分开逗号上的字符串来创建一个新的数组列表,每行一个字符串。我被卡住了,因为在我的循环中每次都会覆盖arraylist,所以我的新数组列表只包含orignal数组列表(array1)的最后一行(以逗号分隔的3个字符串)。我已经在循环之外声明了第二个数组列表,但它每次仍然覆盖。它可能是一些非常愚蠢的,但这里是代码,任何帮助或指针赞赏!..阵列列表内部循环覆盖

String[] array = new String[array1.size()]; 
List<String> array2 = new ArrayList<String>(); 

for (int i = 0; i < array1.size(); i++) { 
array = ((array1.get(i)).split(",")); 
array2 = Arrays.asList(array1); 
} 

回答

2

简单地以这种方式你要追加结果添加array2.addAll,而不是数组2 =吐操作

String[] array = new String[array1.size()]; 
    List<String> array2 = new ArrayList<String>(); 

for (int i = 0; i < array1.size(); i++) { 
    array = ((array1.get(i)).split(",")); 
    array2.addAll(Arrays.asList(array1)); 
} 
+0

非常感谢! :) – Caz

0

如果array1包含的文本行就应该是这样的:

List<String> array1 = ... // your read lines 
List<String> splitted = new LinkedList<String(); 

for(String line : array1) { 
    String[] splittedLine = line.split(","); 
    splitted.addAll(Arrays.asList(splittedLine)); 
} 

基本上,你的问题是你分配了新列表array2而不是添加元素到它。

+0

感谢您的时间和帮助! :) – Caz

0

的问题是有点不清楚,但我的猜测是不是覆盖列表

array2 = Arrays.asList(array1); 

追加

array2.addAll(Arrays.asList(array1)); 

但是请注意,这给你每行有多个元素,你可以使用列表清单或数组列表(每行一个条目,每个条目都有一个字段列表)。