2016-07-23 3 views
1

Okだから、これらの配列リストをマージしてお互いに差し込み、以下の文章を作成したい。 出力:いくつかのArraylistsをマージする<String>を

List<String> list1 = Arrays.asList(This, , , , , , , , reconstruct); 
List<String> list2 = Arrays.asList (, is, the, , , , trying, ,); 
List<String> list3 = Arrays.asList(, , ,sentence, that, I'm, , to,); 

を「これは私が再構築しようとしている文である」私はlist.addall(LIST2)を使用しようとしたが、それはちょうど右隣他に、各リストを配置します。リストをどのように統合できますか?

+2

を助けることができることを願っています!=「」 ' – Blobonat

答えて

0

あなたは与えられたリストは、同じサイズを持っていると仮定すると

List<String> list1 = Arrays.asList("This", "", "", "", "", "", "", "", " reconstruct"); 
    List<String> list2 = Arrays.asList("", " is", " the", "", "", "", " trying", "", ""); 
    List<String> list3 = Arrays.asList("", "", "", " sentence", " that", " I'm", "", " to", ""); 

    StringBuilder sentense = new StringBuilder(); 
    for (int i = 0; i < list1.size(); i++) { 
     sentense.append(list1.get(i)).append(list2.get(i)).append(list3.get(i)); 
    } 
    System.out.print(sentense.toString()); 
+1

それぞれの前にスペースを追加します単語(最初のものを除く)は正しく見えません。区切り文字としてスペースを含むStringJoinerを使用することで回避できます。 – Pshemo

0

以下のようなものを持つことができます。このようなコードを使用することができます。

for(int i =0; i<list1.size();i++){ 
    if(list1.get(i)==""){ 

    //replace with sentence from other lists 
     if(list2.get(i)!=""){ 
      list1.add(i,list2.get(i)); 
     } 
     else if(list3.get(i)!=""){ 
      list1.add(i,list3.get(i)); 
     } 
    } 
    } 
0

あなたは言葉のすべての位置が一意であることを確信している場合は、次のコードは動作します:

List<String> list1 = Arrays.asList(This, , , , , , , , reconstruct); 
List<String> list2 = Arrays.asList (, is, the, , , , trying, ,); 
List<String> list3 = Arrays.asList(, , ,sentence, that, I'm, , to,); 

String txt = ""; 
for (int i = 0; i < list1.size(); i++) { 
    txt = txt + list1.get(i) + list2.get(i) + list3.get(i) + " "; 
} 
System.out.println(txt.trim()); 

あなたがこれを行う新しいリストを作成したい場合:

List<String> myList = new ArrayList<String>(); 
String txt = ""; 
for (int i = 0; i < list1.size(); i++) { 
    txt = list1.get(i) + list2.get(i) + list3.get(i); 
    myList.add(txt); 
} 
0

これを試すことができます。私は、これはあなたがリストから `長= size`持つ配列を作成し、`コンテンツならば、特定の場所でのアレイにコンテンツを追加することができます

List<String> list1 = Arrays.asList("This", "", "", "", "", "", "", "", "reconstruct"); 
    List<String> list2 = Arrays.asList ("", "is", "the", "", "", "", "trying", "",""); 
    List<String> list3 = Arrays.asList("", "", "","sentence", "that", "Im", "", "to",""); 
    List<String> mergedValue = new ArrayList<>(); 

    for(int i = 0; i<list1.size();i++){ 
     if(list1.get(i)!=""){ 
      mergedValue.add(list1.get(i)); 
     } 
     if(list2.get(i)!=""){ 
      mergedValue.add(list2.get(i)); 
     } 
     if(list3.get(i)!=""){ 
      mergedValue.add(list3.get(i)); 
     } 
    } 
関連する問題