#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