2009-03-18 36 views
9

Tôi đang phát triển một ứng dụng J2ME.Phân tách chuỗi logic trong J2ME

Tôi muốn chia chuỗi sau tại "<br>" & dấu phẩy:

3,toothpaste,2<br>4,toothbrush,3 

Làm thế nào tôi có thể làm điều này?

+0

xin lỗi nhưng có một thẻ BR ở giữa hai hồ sơ – Vikas

+0

Tôi cố định định dạng nên
là rõ ràng. – Eddie

+0

Bạn có thể chỉ cần sử dụng 'StringTokenizer' Lớp – Lucifer

Trả lời

18
private String[] split(String original,String separator) { 
    Vector nodes = new Vector(); 
    // Parse nodes into vector 
    int index = original.indexOf(separator); 
    while(index >= 0) { 
     nodes.addElement(original.substring(0, index)); 
     original = original.substring(index+separator.length()); 
     index = original.indexOf(separator); 
    } 
    // Get the last node 
    nodes.addElement(original); 

    // Create split string array 
    String[] result = new String[ nodes.size() ]; 
    if(nodes.size() > 0) { 
     for(int loop = 0; loop < nodes.size(); loop++) 
     { 
      result[loop] = (String)nodes.elementAt(loop); 
      System.out.println(result[loop]); 
     } 

    } 
    return result; 
} 

Phương pháp trên sẽ cho phép bạn chia chuỗi về dấu phân cách đã qua, giống như J2EE's String.split(). Vì vậy, đầu tiên chia chuỗi trên thẻ ngắt dòng, và sau đó làm điều đó tại mỗi bù đắp của mảng trả về cho dấu ",". ví dụ:

String[] lines = this.split(myString,"<br>"); 
for(int i = 0; i < lines.length; i++) 
{ 
     String[] splitStr = this.split(lines[i],","); 
     System.out.println(splitStr[0] + " " + splitStr[1] + " " + splitStr[2]);  
} 
+0

Nên đọc: ' // Lấy nút cuối cùng nếu (! "" Bằng (original_element)) { \t nodes.addElement (original_element); } ' –

+0

Tại sao bạn hoàn nguyên chỉnh sửa của mình? Có lỗi - tôi chạy vào nó bằng mã của bạn - nếu chuỗi có dạng ' 'kết quả sẽ là' [, ""] '- Vui lòng sửa! –

1
private String[] split(String original, String separator, int count) 
{ 
    String[] result; 
    int index = original.indexOf(separator); 
    if(index >= 0) 
     result = split(original.substring(index + separator.length()), separator, count + 1); 
    else 
    { 
     result = new String[count + 1]; 
     index = original.length(); 
    } 
    result[count] = original.substring(0, index); 
    return result; 
} 

String[] lines = this.split(myString,"<br>",0); 
Các vấn đề liên quan