- ベストアンサー
条件分岐
<A>aaa... <B>bbb... <C>ccc... と<A><B><C>が繰り返す文章から特定の文字を抽出して、 aaa|bbb|ccc|としたいのですが、まれに<C>がない箇所(<A><Bのみ>)もあり、うまくプログラムが書けません。具体例がだせず分かりにくいとは思いますが、どうかアドバイスよろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
うまくいかないときは for(){ //繰り返し処理 ////////////////////////////////////////////////// //まず、a,b,cを出力 出力(a); 出力(b); 出力(c); ////////////////////////////////////////////////// if(a != null && a.length() > 0){ //aを出力 } ////////////////////////////////////////////////// else{ //elseに入った } ////////////////////////////////////////////////// if(b != null && b.length() > 0){ //bを出力 } ////////////////////////////////////////////////// else{ //elseに入った } ////////////////////////////////////////////////// if(c != null && c.length() > 0){ //cを出力 } ////////////////////////////////////////////////// else{ //elseに入った } ////////////////////////////////////////////////// } のように、 まずa,b,cを出力してみるか、 ifにelseをつけるなどして、 a,b,cに何が入ってるのか? ifの条件が間違っていないか? というのを考えるといいと思います。
その他の回答 (3)
- pcbeginner
- ベストアンサー率46% (261/560)
<c>がない場合はスルーして ってことなら、<a><b>もない場合を考慮して for(){ //繰り返し処理 if(a != null && a.length() > 0){ //aを出力 } if(b != null && b.length() > 0){ //bを出力 } if(c != null && c.length() > 0){ //cを出力 } } って感じですかね。
お礼
pcbeginner様、2度目のアドバイスありがとうございます。 実はそれで書いたのですがうまくいきませんでした・・・他の原因かもしれません・・毎回いい勉強をさせていただいております。
- hanazawa-love
- ベストアンサー率13% (8/61)
if (c == null || c.length() == 0) { // aaa|bbb|を出力 } else { // aaa|bbb|ccc|を出力 } って感じじゃダメなんですか? pcbeginnerさんが言ってるのとほぼ同じ回答ですが・・・。
お礼
hanazawa-love様、ありがとうございます。 自分ではなかなか書けなくて・・・習い始めて三ヶ月なのにやばいですね(汗) 参考にして文章書いてみます。
- pcbeginner
- ベストアンサー率46% (261/560)
先日の続きですね。 具体例については、顧客の名前や、それと分かるようなカラム名などを単純な名前に書き換えて載せればいいのでは? で、本題です。 <C>がない場合はSELECTした結果には何が入ってますか? もっと言うと、DBのカラムはnullがOKな場合はnullが返ってくるでしょうし、nullがNGな場合は長さ0の文字列が返ってきませんか? (いや、何がnullとか長さ0の文字列が返ってくるかはもしかしたらDBによって違うかもしれないので、何とも言えないですが…) どちらにしろ、<C>がない場合に返ってくる文字列で判断したらいいと思います。 if(c == null || c.length() == 0){ //<c>がない場合 } のような感じで。 また間違ってたらごめんなさい。
お礼
pcbeginner様、ありがとうございます。 書き方が悪くて申し訳ありません。今後気をつけます。 文章自体が間違ってました。<C>が無い場合にスルーして aaa|bbb| //<C>なし aaa|bbb|ccc| //<cあり> としていきたいのです。 if(c == null || c.length() == 0)は勉強になります。参考にします。
お礼
pcbeginner様、問題解決しました。本当にありがとうございました。elseをつけてみたらif文に問題があることがわかりました。今後もよろしくお願いいたします(ご迷惑でしょうが・・)。ありがとうございました。