如何旋转和翻转2D字符数组,以便字母以不同的顺序显示?
char[,] array = new char[6,4] {
{ 'A', 'B', 'C', 'D' },
{ 'E', 'F', 'G', 'H' },
{ 'I', 'J', 'K', 'L' },
{ 'M', 'N', 'O', 'P' },
{ 'Q', 'R', 'S', 'T' },
{ 'U', 'V', 'W', 'X' }
};
6x4矩阵
Orig. 90° 180° 270° Flip H Flip V
A B C D U Q M I E A X W V U D H L P T X D C B A U V W X
E F G H V R N J F B T S R Q C G K O S W H G F E Q R S T
I J K L W S O K G C P O N M B F J N R V L K J I M N O P
M N O P X T P L H D L K J I A E I M Q U P O N M I J K L
Q R S T H G F E T S R Q E F G H
U V W X D C B A X W V U A B C D
旋转数组后,我想将String.Join()
所有行放到一行中以供其他用途。
因此,如果您要将阵列翻转90°并String.Join()
ABCDEFGHIJKLMNOPQRSTUVWX
将显示为UQMIEAVRNJFBWSOKGCXTPLHD
。
示例
这是旋转方法90°。
https://stackoverflow.com/a/42535/6806643
char[,] rotated = RotateMatrix(array, 4);
static char[,] RotateMatrix(char[,] matrix, int n) {
char[,] ret = new char[n, n];
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
ret[i, j] = matrix[n - j - 1, i];
}
}
return ret;
}
但我只能让它显示最多4列
M I E A
N J F B
O K G C
P L H D
什么时候应该是6
U Q M I E A
V R N J F B
W S O K G C
X T P L H D