2009-03-18 23 views
9

私はJ2MEアプリケーションを開発しています。J2MEの分割文字列

私は"<br>" &コンマで次の文字列を分割したい:

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

私はこれをどのように行うことができますか?

+0

申し訳ありませんが、
が明らかなので、私は書式設定を固定 – Vikas

+0

これら二つのレコード間でのBRタグがあります。 – Eddie

+0

あなたは、単に 'StringTokenizer'クラス – Lucifer

答えて

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

上記の方法では、J2EEのString.split()と同様に、渡されたセパレータについて文字列を分割できます。したがって、最初に改行タグで文字列を分割し、 "、"カンマに対して返された配列の各オフセットで行います。例:

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

が読むべき使用することができます。 '場合//最後のノード を取得{ \t nodes.addElement(original_element)(!。 ""(original_element)に等しいです)。 } ' –

+0

なぜ私の編集を元に戻しましたか?バグがあります。あなたのコードを使って実行します。文字列の形式が ''の場合、結果は '[、"] 'です - 訂正してください! –

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