LoginSignup
2
2

More than 1 year has passed since last update.

Java 標準出力から二次元配列での受け取り方、行列の入れ替え方

Last updated at Posted at 2021-11-11

Java 標準出力から二次元配列での受け取り方、行列の入れ替え方

行(横)ごとに値を受け取る

inputがint型の場合

【input】
1 2 3
4 5 6
7 8 9
0 1 2

// スキャナークラスのロード
Scanner scan = new Scanner(System.in);
// 受け取り用配列
int[][] line = new int[4][3];

// トークン取得、配列格納
for (int i = 0; i < 4; i++) {
    line[i] = new int[3];
    for (int j = 0; j < 3; j++) {
        line[i][j] = scan.nextInt();
    }
}

// 配列の中身表示
for (int i = 0; i < line.length; i++) {
    for (int j = 0; j < line[0].length; j++) {
        System.out.println("line[" + i + "][" + j + "] = " + line[i][j]);
    }
}

【出力結果】
line[0][0] = 1
line[0][1] = 2
line[0][2] = 3
line[1][0] = 4
line[1][1] = 5
line[1][2] = 6
line[2][0] = 7
line[2][1] = 8
line[2][2] = 9
line[3][0] = 0
line[3][1] = 1
line[3][2] = 2

inputがString型の場合

例:
ABC
DEF
GHI
JKL

// スキャナークラスのロード
Scanner scan = new Scanner(System.in);
// 二次元配列の行数を作成(配列の要素数は例に合わせて記載)
String[][] line = new String[4][3];

// トークン取得、二次元配列へ格納
for (int i = 0; i < 4; i++) {
    line[i] = scan.next().split("");
}

// 配列の中身表示
for (int i = 0; i < line.length; i++) {
    for (int j = 0; j < line[0].length; j++) {
        System.out.println("line[" + i + "][" + j + "] = " + line[i][j]);
    }
}

【出力結果】
line[0][0] = A
line[0][1] = B
line[0][2] = C
line[1][0] = D
line[1][1] = E
line[1][2] = F
line[2][0] = G
line[2][1] = H
line[2][2] = I
line[3][0] = J
line[3][1] = K
line[3][2] = L

列(縦)ごとに値を受け取る

inputがint型の場合

【input】
1 2 3
4 5 6
7 8 9
0 1 2

// スキャナークラスのロード
Scanner scan = new Scanner(System.in);
// 受け取り用配列
int[][] line = new int[4][3];

// トークン取得、配列格納
for (int i = 0; i < 4; i++) {
    line[i] = new int[3];
    for (int j = 0; j < 3; j++) {
        line[i][j] = scan.nextInt();
    }
}

// 縦列に文字列を格納しなおす
int[][] column = new int[line[0].length][line.length];
for (int i = 0; i < line.length; i++) {
    for (int j = 0; j < line[0].length; j++) {
        column[j][i] = line[i][j];
    }
}
//      // 上を具体的に数字に置き変えると
//      int[][] column = new int[3][4];
//      for (int i = 0; i < 4; i++) {
//          for (int j = 0; j < 3; j++) {
//              column[j][i] = line[i][j];
//          }
//      }

// 配列の中身表示
System.out.println("---line(行列そのまま)---");
for (int i = 0; i < line.length; i++) {
    for (int j = 0; j < line[0].length; j++) {
        System.out.print(line[i][j]);
    }
    System.out.println();
}

// 配列の中身表示
System.out.println("---column(行列入れ替え)---");
for (int i = 0; i < column.length; i++) {
    for (int j = 0; j < column[0].length; j++) {
        System.out.print(column[i][j]);
    }
    System.out.println();
}

【出力結果】
---line(行列そのまま)---
123
456
789
012
---column(行列入れ替え)---
1470
2581
3692

inputがString型の場合

例:
ABC
DEF
GHI
JKL

// スキャナークラスのロード
Scanner scan = new Scanner(System.in);
// 二次元配列の行数を作成(配列の要素数は例に合わせて記載)
String[][] line = new String[4][3];

// トークン取得、二次元配列へ格納
for (int i = 0; i < 4; i++) {
    line[i] = scan.next().split("");
}

// 縦列に文字列を格納しなおす
String[][] column = new String[line[0].length][line.length];
for (int i = 0; i < line.length; i++) {
    for (int j = 0; j < line[0].length; j++) {
        column[j][i] = line[i][j];
    }
}
//      // 上を具体的に数字に置き変えると
//      String[][] column = new String[3][4];
//      for (int i = 0; i < 4; i++) {
//          for (int j = 0; j < 3; j++) {
//              column[j][i] = line[i][j];
//          }
//      }

// 配列の中身表示
System.out.println("---line(行列そのまま)---");
for (int i = 0; i < line.length; i++) {
    for (int j = 0; j < line[0].length; j++) {
        System.out.print(line[i][j]);
    }
    System.out.println();
}

// 配列の中身表示
System.out.println("---column(行列入れ替え)---");
for (int i = 0; i < column.length; i++) {
    for (int j = 0; j < column[0].length; j++) {
        System.out.print(column[i][j]);
    }
    System.out.println();
}

【出力結果】
---line(行列そのまま)---
ABC
DEF
GHI
JKL
---column(行列入れ替え)---
ADGJ
BEHK
CFIL

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2