2012-01-24 58 views
2

私はこのような文字列だ:抽出文字列テキストに

String text = number|name|url||number2|name2|url2

は、今私は私がnumber 1に文字列を抽出したいループこのループで

int initialiaze = 0; 
for(i = initialize; i > text.length(); i++) { 
    //do the work 
} 

を書かれています、 nameを1つの文字列に変換する場合は、urlを1つの文字列に変換し、||に到達すると、この処理が実行された場合にアクションを実行します(たとえば、この3つの文字列をdbに挿入します)。number2name2url2を文字列に変換してアクションを実行します。

これは可能ですか?どうやって教えてくれますか?理解できません。

+2

StringTokenizer http://stackoverflow.com/questions/2356251/string-tokenizer-in-javaとhttp://www.java-samples.com/showtutorial.php?tutorialid=236をご覧ください。 –

+0

'|'区切り文字がそのままそこにあるのか、それとも単にその部分を説明するために表示していますか? – Dallas

+0

ストリングを分割すると便利だと思ったので、私は仕切りを追加しました。 :) – Leandros

答えて

6

文字列に.split()メソッドを使用できます。

あなたのケースのための
String[] bigParts = myString.split("\\|\\|"); 
for(String part : bigParts) 
{ 
    String[] words = part.split("\\|"); 
    //save to db or what you want 
} 
+0

+1私はちょうど同じものを投稿しようとしていた。 – Squonk

+0

私は '|'をエスケープするのを忘れました文字))が、すでに固定されています。 – shift66

+0

1つ(.split()対tokenizer)を別のものに渡す理由がありますか? – Dallas

3

StringTokenizer stPipe = null; 
    StringTokenizer stDblPipe = null; 
    String firstPipeElement=null; 
    stPipe = new StringTokenizer(text, "|");   
    if (stPipe.hasMoreElements()) 
    { 
     firstPipeElement= stPipe.nextElement().toString(); 
    ....... 
    if(firstPipeElement.equals("||")) 
     { 
     stDblPipe = new StringTokenizer(firstPipeElement , "||"); 
    ..... 

     } 
    } 

希望これはこれは役立つだろう、私は願っています

+0

firstPipeElementとは何ですか?あなただけが忘れた別の文字列? – Leandros

+0

aye。それを固定した。ごめんなさい。 –

1

Javaは私の言語が、試してみる価値、

String text = number|name|url||number2|name2|url2 
String[] temp; 
String[] temp2; 
int i ; 
temp = text.split("\\|\\|") 
for(i=0;i<temp.length();i++){ 
temp2 = temp[i].split("\\|"); 
String no = temp2[0]; 
String name = temp2[1]; 
String url = temp2[2]; 

// Do processing with no, name, url 

} 

ではないが、助け

+0

あなたの答えを編集し、 '|'をエスケープしてください文字。そして、すでに二重引用符を変更してください( '||' - > "\\ | \\ |") – shift66

+0

編集のためにRanragと指摘してくれた@Ademibanに感謝します。 奇妙なことに(私はJavaを知らない)、エスケープせずに実行されていませんか?また、単一の文字である場合、Javaは単一引用符または二重引用符を持ちますか? C#では、text.Split( '|')は大丈夫で、文字列の分割がないためです。 – Jashwant

+0

あなたの答えは正しいです:)いいえ、Javaでは2つの分割メソッドしかなく、どちらも引数として1つのシンボルではなくテキストを取るので、シンボルが1つしかない場合でもテキストを二重引用符で囲む必要があります。これについては、http://docs.oracle.com/javase/6/docs/api/java/lang/String.htmlを参照してください。 – shift66

関連する問題