2012-04-15 49 views
-1

我在做Android的一個項目,我有一個問題我的數組列表值這樣拆分值

[NAME1,ADDR1,PLACE1,NAME2 ADDR2,place2]

我怎樣才能分割這個值,並希望將名稱,地址,地點存儲在不同的數組列表中?

+0

你的陣列將永遠是捷斯格式? [name1,addr1,-place1,name2,addr2,-place2]。即第一個名字然後addres然後地方 – Shehzad 2012-04-15 14:32:02

+0

[name1,addr1,place1,name2,addr2,place2] – anoop 2012-04-15 14:33:15

+0

anoop從哪裏你得到這個數組列表...我的意思是從webservice? – 2012-04-15 14:34:07

回答

1
ArrayList<String> allInfo, names, addresses, places; 
//init everythin 
for(int i=0; i<allInfo.size();i++) 
    switch(i % 3){ 
    case 0: 
     names.add(allInfo.get(i)); 
     break; 
    case 1: 
     addresses.add(allInfo.get(i)); 
     break; 
    case 2: 
     places.add(allInfo.get(i)); 
     break; 
    } 

或者更有效的形式給出

for(Iterator itr=allInfo.iterator(), int i=0; itr.hasNext(); i++) 
    switch(i % 3){ 
     case 0: 
      names.add(itr.next()); 
      break; 
     case 1: 
      addresses.add(itr.next()); 
      break; 
     case 2: 
      places.add(itr.next()); 
      break; 
     } 
0

您可以將陣列分成不同的陣列以下列方式。

ArrayList<String> mainArray = new ArrayList<String>(); 
    //mainArray Has Data now we want to shift it into different arrays 
    ArrayList<String> name = new ArrayList<String>(); 
    ArrayList<String> address = new ArrayList<String>(); 
    ArrayList<String> place = new ArrayList<String>(); 
    for(int i=0;i<mainArray.size();i++){ 
     switch(i%3){ 
     case 0: 
      name.add(mainArray.get(i)); 
      break; 
     case 1: 
      address.add(mainArray.get(i)); 
      break; 
     case 2: 
      address.add(mainArray.get(i)); 
      break; 
     } 
    } 
0
ArrayList<String> yourArrayList; //this is you array list which have names, addresses and places in it 

ArrayList<String> names = new ArrayList<String>(); 
ArrayList<String> addresses = new ArrayList<String>(); 
ArrayList<String> places = new ArrayList<String>(); 

for(int i =0;i<yourArrayList.length;i++){ //iterate yourArrayList and for every element, add it in a seperate array list 
    if(i%3==0) 
     names.add(yourArrayList[i]) 

    else if(i%3==1) 
     addresses.add(yourArrayList[i]); 

    else if(i%3==2) 
     places.add(arraylist[i]); 
}