2012-04-09 1 views
0

だから私は、書籍情報と、この文字列を持っている:パターンを含むデータの配列をJavaで処理していますか?

String data = "Harry Potter 1 | J.K. Rowling| 350 | Fantasy | Hunger Games | Suzanne Collins | 500 | Fantasy | The KingKiller Chronicles | Patrick Rothfuss | 400 | Heroic Fantasy" 

は、それから私は、文字列を分割:

String splitData = data.split("\\|"); 

これは、ハリー・ポッター1は、位置0にあるとJ。K.の原因となりますローリングが位置1に、350が位置2に、など。

ここでは、位置0は書籍のタイトルであり、位置1は著者であり、 2位はページ数、3位はジャンルです。それから、それは再び位置4で始まります。これはやはり本のタイトルです。位置5は本の作者などです。私がどこに行くのか理解していると思います。

ここでは、すべてのタイトルを別々に印刷する、すべての著者、すべてのページ量を表示するなど、これらの要素を個別に表示したいとします。

これは0、4、8、著者であるにタイトルがあるので、行うことが可能であるべきでは1、5、9、などあなたがforループはあなたがどんな修正を行うことができますことを思い出すことができ

+1

この宿題はありますか? –

+1

いいえ、私の前の質問を見ると、私は漫画リーダーを作ろうとしています。これは、マンガ、著者などのタイトルを取得します。私はこれを処理しようとしているが、私はどのように^ ^を知らない。 – ZimZim

+0

あなた自身で最初に試してください。問題が発生した場合は、尋ねてください。 –

答えて

4
String data = "Harry Potter 1 | J.K. Rowling| 350 | Fantasy | Hunger Games | Suzanne Collins | 500 | Fantasy | The KingKiller Chronicles | Patrick Rothfuss | 400 | Heroic Fantasy"; 
    String[] splitData = data.split("\\|"); 
    for(int i=0; i<splitData.length;i++) { 
     if(i % 4 == 0) System.out.println("Title: "+splitData[i]); 
     else if(i % 4 == 1) System.out.println("Author: "+splitData[i]); 
     else if(i % 4 == 2) System.out.println("Pages: "+splitData[i]); 
     else if(i % 4 == 3) System.out.println("Genre: "+splitData[i]); 
    } 

難しいですか?

+0

+1難しいコメント – Kevin

+0

私はこれを他の日に知っていたと思うことを[あなたが信じる霊的リーダーの名前]に誓っていますが、今日私は心が詰まっています。しかし、ありがとう! Btw、それらの3つのif文はelse-if文でなければなりません。これにより、プログラムが少し効率的になります。 – ZimZim

+0

スイッチを使用することもできます:i%4は1回だけ計算されます –

2

最後の表現では、i++だけではありません。この場合、i += 4を使用できます。次に、各繰り返しで、名前はsplitData[i]、投稿者はsplitData[i+1]、ページ数はsplitData[i+2]、ジャンルはsplitData[i+3]になります。