2012-03-19 5 views
1

내 응용 프로그램에서 arraylist에 문자열 유형 데이터를 "|" 분리 기호로 연산자. 즉, 내 배열 목록에 [123,124, |, 324,543 | 789,649,666,356]과 같은 데이터가 포함되어 있습니다. 이제 arraylist를 "|" 데이터를 문자열 배열에 저장해야합니다. 어떻게해야합니까?ArrayList를 분할하고 데이터를 android의 String 배열에 저장하는 방법은 무엇입니까?

내 코드 :

ArrayList<String> arr2; 
ArrayList<ArrayList<String>> alllist; 
String[] str; 

for (j = 0; j < alllist.size(); j++) { 
    arr2 = new ArrayList<String>(); 
    arr2 = alllist.get(j); 

    for (Object v : arr2) { 
     str = v.toString().split("|"); 
     System.out.println("checking str[i]" + str[i]); 

     if (str[j].contains(",")) { 
      System.out.println("hii"); 
     } 
    } 
} 

그것은 if(str[j].contains(",")) 줄에서 오류를 보여주고있다 .... 이에 대해 제발 도와주세요 .. 덕분에 미리 ... 당신이 원하는

+1

str 변수에는 어떤 유형이 있습니까? AFAIK, split() 메서드는 String 배열을 반환하지만 String 클래스에는 contains() 메서드가 없습니다. – Egor

+0

무엇이 오류입니까? – hmjd

+0

오류가 null 포인터 예외입니다. – RaagaSudha

답변

1

확실하지 않음에 달성, 그러나 이것은 당신이 당신의 코드를 빌드하는 데 도움이 수 :

public static void main(String args[]) throws ParseException { 

    List<List<String>> allList = new ArrayList<List<String>>(); 
    allList.add(Arrays.asList("|123,124,|,324,543|789,649,666,356")); 

    for (List<String> list : allList) { //use a for each loop instead of looping on an int and using allList.get(i) 
     for (String s : list) { //Same thing 
      String[] str = s.split("\\|"); //You need to escape | with \\ to get the expected split 
      for (String item : str) { 
       System.out.println("checking " + item); 
       if (item.contains(",")) { 
        System.out.println("hii"); 
       } 
      } 

     } 
    } 
} 
1

왜 당신은 단순히 이것을 사용하지 마십시오

List<String> flag2=new ArrayList<String>(); 
String flag[]=new String[flag2.size()]; 

for(int i=0;i<flag2.size();i++){ 
    flag[i]=flag2.get(i); 
} 
0
public void onClick(View v){ 
    String teks = txtinput.getText().toString(); 
    String[] tempPesanMasuk = teks.split("_"); 
    ArrayList<String> teks_lengkap = new ArrayList<String>(); 
    String teksJadi = ""; 

    for(int i = 0; i < tempPesanMasuk.length; i++) 
     teks_lengkap.add(tempPesanMasuk[i].trim()); 

    for(int i = 0; i < tempPesanMasuk.length ; i++) 
     teksJadi = teksJadi + teks_lengkap.get(i) + " "; 

    System.out.println(teksJadi); 
} 
+2

스택 오버플로에 오신 것을 환영합니다! 코드에서 수행하는 작업과 문제점을 해결하는 이유를 설명하십시오. 코드가 포함 된 답변만으로도 (문제가 있다고하더라도) 일반적으로 OP가 문제를 이해하는 데 도움이되지 않습니다. – SuperBiasedMan

관련 문제