• ベストアンサー

javaで同じデータが続けば、2行目からは非表示にしたいのですが、どうもうまくいきません。

初めて投稿させて頂きました。 初心者で質問の仕方もまずいですが、よろしくお願いします。 環境:OS = WindowsXP J2SE SDK = 1.4.1_05 Tomcat = 4.1.24 以下のような表を作っています。    章名  勉強回数 開始日   終了日  _______________________________________________ | 第一章  一回目  2005/1/1 2005/1/31 | | 第一章  二回目 2005/4/1 2005/4/30 | | 第一章  三回目 2005/5/1 2005/5/31 | | 第二章  一回目 2005/2/1 2005/2/28 | | 第三章  一回目 2005/3/1 2005/3/31 | ----------------------------------------------- 章名ごとにソートをかけています。 ここで2行目と3行目に『第一章』がありますが、この2行目と3行目の『第一章』を非表示にしたくて悩んでいます。 行ごとにループをかけて、列ごとにデータを入れていくという方法を使っています。 一つ前の行の章名のデータを見に行って、当該行のデータと同じであれば非表示にしようと考えています。 検索したところ、equalsで比較すればできるようなことが書かれてありましたが、理解できず質問させて頂きました。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • azicyan
  • ベストアンサー率21% (368/1747)
回答No.1

データベースから読み込んでいるのでしょうか? 例えば、Syoumei、という変数に第一章とはいってくるとします。 表示する行が例えばSystem.out.printだとして、表示した後Syoumei2という変数にコピーしましょうか。 Syoumei2 = Syoumei; で、次のループの際このSyoumei,Syoumei2を比較すると、一つ前と同じがどうか比較できますね。 if(!(Syoumei.equals(Syoumei2))){   /* 表示処理 */ } の用にすれば第一章が並んだ場合に表示処理をパスできますね。 もっとうまい方法もあるかもしれませんがとりあえず・・・

goodjack
質問者

お礼

早速のお答え、ありがとうございます。 返信遅くなって申し訳ありません。 おっしゃるとおり、データベースから読み込んで、設定しようとしています。 コンパイルしたところ、別の箇所でエラーが一件出てきました。 ただいま調査中ですが、アドバイスのおかげで何とかできそうな感じです。 ご親切にありがとうございました。

その他の回答 (2)

回答No.3

if("第一章".equals(String)){ } みたいに使えば問題なく文字列での比較ができますよ☆ データをどこから取得してどう処理して書き出しているか判らないのですが データを取得している訳だからできるはず! この場合、比較する用の変数を用意して取得した時に 同時に比較用の変数にも格納、 以降はデータを取得する度に文字列を比較して条件判断させれば問題ないと思います。 勿論!もっと良い方法もあると思うけどequalsの使い方は 1行目の通りです☆ かなり簡単に書いちゃったけどとりあえずこんなもんで!

goodjack
質問者

お礼

アドバイスありがとうございます。 返信が遅くなって申し訳ありません。 すみません、説明不足でした。データベースから読み込んで、設定しようとしています。 コンパイルしたところ、表示/非表示とは関係なさそうな箇所でエラーが一件出てきました。 ただいま調査中ですが、後は何とかできそうな感じです。 ご親切にありがとうございました。

回答No.2

equalsの使い方ということですね? 例えば1行目の「第一章」が格納されている変数名を「mae」、 2行目の「第一章」画格納されている変数名を「ima」とします。 (どちらもString型です) ソースレベルでの書き方とすれば、 if(ima.equals(mae)){ // 1行目と2行目が同じ場合の処理 }else { // 1行目と2行目が違う場合の処理 } といった具合です。 「euqals」メソッドは与えられた引数の中身が同じであれば「true」を、 違えば「false」を返します。 即ち「ima」に格納されている値と「mae」に格納されている値が合っているか 違っているかを教えてくれます。

goodjack
質問者

お礼

返信が遅くなって申し訳ありません。 アドバイスありがとうございます。 コンパイルしたところ、別の箇所でエラーが一件出てきました。 表示/非表示の問題ではないので、後はなんとかなりそうです。 ご親切にありがとうございました。

関連するQ&A