旋转多线字符串

时间:2015-02-27 10:56:08

标签: java

这是一个奇怪的问题,但我无法弄清楚如何做到这一点。 我有一个多行字符串,打印时看起来像这样:

xxx$$xx
xxx$$xx
xxxxxxx
xxxxxxx

我怎样才能"旋转"它90度?期望的结果:

xxxxxxx
xxxxxxx
xxxxxxx
xxxxx$$

在我的班级中,最终输出字符串的每一行都单独放在一起,然后附加换行符以打印上面的第一个字符串(多行)。

2 个答案:

答案 0 :(得分:4)

假设通过 rotate 你也不是指横向打印文本,你可以将多行字符串视为2d字符数组。

然后你可以这样做:

for row in nonRotated
   for column in nonRotated[row]
       rotated[column][row] = nonRotated[row][column]

答案 1 :(得分:1)

不确定它现在已经回答了,但我这样做了:

String[][] testArr = new String[][] { { "a", "b" }, { "a", "a" },
    { "c", "c" } };

System.out.println("Array before:");
for (int i = 0; i < testArr.length; i++) {
  for (int j = 0; j < testArr[i].length; j++) {
    System.out.print(testArr[i][j]);
  }
  System.out.println();
}
//rotation start
int A = testArr.length;
int B = testArr[0].length;
String[][] arrDone = new String[B][A];
for (int i = 0; i < A; i++) {
  for (int j = 0; j < B; j++) {
    arrDone[j][A - i - 1] = testArr[i][j];
  }
}
//rotation end
System.out.println("Array afterwards:");
for (int i = 0; i < arrDone.length; i++) {
  for (int j = 0; j < arrDone[i].length; j++) {
    System.out.print(arrDone[i][j]);
  }
  System.out.println();
}