2

提前感谢您能给我的任何帮助!基本上我有一个数组列表,每行三个单词用逗号分隔。我想用逗号分隔字符串以创建一个新的数组列表,每行一个字符串。我被卡住了,因为在我的循环中每次都会覆盖arraylist,所以我的新数组列表只包含原始数组列表(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);
}
4

3 回答 3

2

只需添加 array2.addAll而不是array2 =这样您就可以附加 spit 操作的结果

   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));
 }
于 2012-12-12T11:25:08.983 回答
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不是向其中添加元素。

于 2012-12-12T11:26:46.643 回答
0

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

array2 = Arrays.asList(array1);

你想附加到它

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

但请注意,这会为每行提供多个元素,最好使用列表列表或数组列表(每行一个条目,每个条目都有一个字段列表)。

于 2012-12-12T11:26:53.840 回答