- 締切済み
2つの配列の入力チェック
ご教授お願いします。 2つの配列を比較して、同じ順番の配列に両方文字が入っていれば、OKで同じ順番の配列にどちらか文字が入っていて、どちらか空だったらNGというチェックをしたいのですが、わからずとても困っています(><) 2つの配列をforで回し、考えてみたのですがわかりませんでした(><) ぜひ、宜しくお願い致します。 例) String[] a = new String[10]; String[] b = new String[10];
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- kousai
- ベストアンサー率100% (2/2)
もし、同じインデックスの配列[i]のどちらか片方、またはその両方がnullだとNG、ということだったら、 String[] arr1 = new String[10]; String[] arr2 = new String[10]; for (int i=0; i<10; i++) { if (arr1[i] == null || arr2[i] == null) System.out.println("NG"); } 空というのが""のことなら、nullを""に置き換えてください。
- ProKaseifu
- ベストアンサー率51% (98/192)
まずはやってみてはいかがでしょうか? その上で疑問点があれば回答できると思います。
- ProKaseifu
- ベストアンサー率51% (98/192)
>2つの配列を比較して、同じ順番の配列に両方文字が入っていれば、OKで同じ順番の配列にどちらか文字が入っていて、どちらか空だったらNGというチェックをしたいのですが、わからずとても困っています(><) 文字が入っているかどうかはどのように判別するおつもりでしょうか? 1.配列の要素[n]がnull 2.配列の要素[n]が空文字「""」 3.1と2のどちらも 4.「空」という文字が入っている 判別方法がわかれば後は・・・ 両方の配列に文字が入っている、つまり。 配列aの要素[n]の判別 かつ 配列bの要素[n]の判別 が 真 であればOK。 そうでなければ NG となりますよね? >2つの配列をforで回し、考えてみたのですがわかりませんでした(><) forでまわす部分についてはわかっていらっしゃるということですよね? 判別の仕方が理解できれば難しいことではないと思いますのでもう少し考えてみましょう。 ※一応確認ですが、文字というのは数字はダメということなのでしょうか?(当たり前のことですがに数字も文字なので、数字を識別したいのであれば質問の意味が間違っています・・・)
お礼
迅速なご回答誠にありがとうございます。 >1.配列の要素[n]がnullです。 配列の中身は、数字でも文字でも大丈夫です。 アドバイスを頂き、考えてみました。 String[] a = new String[10]; String[] b = new String[10]; for(int i=0; i < a.length; i++) { for(int j=0; j < b.length; j++) { if(i == j) { if ((a[i] == null && b[j] != null) || (a[i] != null && b[j] == null)) { エラー処理; } } } } こういう感じで大丈夫でしょうか?? 宜しくお願い致します。
お礼
実際やってみます。 ご回答、誠にありがとうございます。