人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

下記ソースを実行した際、結果は
AA
null
BB
bb

と表示されますが、これを下記のように表示させるには、どこを直せばよいでしょうか。
BB
bb
CC
cc

やりたいことは
*配列selectAを配列insertAにコピーしたい。
*ただしselectA[p][1]の値が0の場合はコピーしない。
(p=0だった場合、[0][0]も[0][1]もコピーしない。)


public static void main(String args[]) {


String[][] selectA = {{"AA","0",},
{"BB","bb",},
{"CC","cc",}};

String[][] insertA = new String[selectA.length][];

for(int p = 0; p < selectA.length; p++){
//forループ内でinsertAの下位配列の生成を行う。
insertA[p] = new String[selectA[p].length];

//forループ内でselectAからinsertAへデータのコピーを行う。
for(int q = 0; q < selectA[p].length; q++ ) {

if(selectA[p][q].equals("0")){
break;

}
insertA[p][q] = selectA[p][q];

}

}

System.out.println(insertA[0][0]);
System.out.println(insertA[0][1]);
System.out.println(insertA[1][0]);
System.out.println(insertA[1][1]);

}

●質問者: どらすけ
●カテゴリ:コンピュータ
✍キーワード:AA BB CC Out String
○ 状態 :終了
└ 回答数 : 1/3件

▽最新の回答へ

1 ● t-wata
●60ポイント ベストアンサー

これでどうですか

public static void main(String args[]) {
 String[][] selectA = {{"AA","0",},
 {"BB","bb",},
 {"CC","cc",}};

 String[][] insertA = new String[selectA.length][];

 for(int p = 0; p < selectA.length; p++){
 //条件より、selectA[p][1]の値が0ならコピーせずスキップする
 if (selectA[p][1].equals("0")){
 continue;
 }

 //forループ内でinsertAの下位配列の生成を行う。
 insertA[p] = new String[selectA[p].length];

 //forループ内でselectAからinsertAへデータのコピーを行う。
 for(int q = 0; q < selectA[p].length; q++ ) {
 insertA[p][q] = selectA[p][q];
 }

 }

 System.out.println(insertA[0][0]);
 System.out.println(insertA[0][1]);
 System.out.println(insertA[1][0]);
 System.out.println(insertA[1][1]);

} 
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ