2

あなたが私に与えることができるどんな助けにも前もって感謝します! 基本的に、1 行に 3 つの単語をコンマで区切った配列リストがあります。コンマで文字列を区切り、1 行に 1 つの文字列を持つ新しい配列リストを作成したいと考えています。ループ内で毎回 arraylist が上書きされているため、スタックしているため、新しい配列リストには元の配列リスト (array1) の最後の行 (コンマで分割された 3 つの文字列) のみが含まれます。ループの外で 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 = Arrays.asList(array1);
}
4

3 に答える 3

2

array2の代わりにarray2.addAllを追加するだけ です=このようにして、唾を吐く操作の結果を追加します

   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));

ただし、これにより 1 行に複数の要素が表示されることに注意してください。List of Lists または List of Arrays (1 行に 1 つのエントリで、各エントリがフィールドのリスト) を使用する方がよい場合があります。

于 2012-12-12T11:26:53.840 に答える