入力された行列の転置行列を求めよ

プログラミングスレまとめ in VIPの練習問題を解いてみた
練習問題 - プログラミングスレまとめ in VIP

import java.util.*;

class Tenchi {
	private static int[][] getGyouretu() {
		Scanner scan = new Scanner(System.in);
		System.out.println("何行何列の行列を入力しますか?");
		System.out.println("行:");
		int gyou = scan.nextInt();
		System.out.println("列:");
		int retu = scan.nextInt();
		
		// 返却する行列
		int[][] gyouretu = new int[gyou][retu];
		
		System.out.println("行列を入力して下さい。数字は,で区切って下さい");
		// 1行づつ作成
		for (int i = 0; i < gyou; i++) {
			// 入力列数が正しいか判定
			boolean retusu_flag;
			do {
				retusu_flag = false;
				String input = scan.next();
				String[] input_arr = input.split(",");
				
				if (retu != input_arr.length) {
					retusu_flag = true;
					System.out.println("列数が不正です。再度入力して下さい。");
				} else {
					// string型をint型にキャストしてgyouretuに格納
					for (int j = 0; j < input_arr.length; j++) {
						gyouretu[i][j] = Integer.parseInt(input_arr[j]);
					}
				}
			} while (retusu_flag);
		}
		
		return gyouretu;
	}
	
	public static void main(String[] args) {
		
		//入力行列
		int[][] gyouretu = getGyouretu();
		
		/*
		// test出力
		System.out.println("\n入力行列は");
		for (int[] hairetu : gyouretu) {
			for (int i : hairetu) {
				System.out.print(i);
				System.out.print(" ");
			}
			System.out.println("");
		}
		*/
		
		//転置行列作成
		int[][] tenchi = new int[gyouretu[0].length][gyouretu.length];
		for (int j = 0; j < gyouretu[0].length; j++) {
			for (int i = 0; i < gyouretu.length; i++) {
				tenchi[j][i] = gyouretu[i][j];
			}
		}
		
		System.out.println("\nこの転置行列は");
		for (int[] hairetu : tenchi) {
			for (int i : hairetu) {
				System.out.print(i);
				System.out.print(" ");
			}
			System.out.println("");
		}
	}
}

妙に長くなってしまいました。結構面白かったです。