定义二维字符数组a[][];
第一行内容为:如果你是爱我的,
第二行内容为:就把这一行给竖过来显示,
第三行内容为:我想你会做到。
变换后效果
如 就 我
果 把 想
你 这 你
是 一 会
爱 行 做
我 给 到
的 竖 。
, 过
来
显
示
。
不要使用方法,只用for,难点是不行长数组的边界问题处理,请大神们出招吧
String [][] strs = new String[3][11];
for(int j = 0;j<11;j++){
for(int i = 0;i<3;i++){
System.out.printl(strs[i][j]);
}
}
public static void main(String[] args) {
String[][] arr = {{"如果你是爱我的,"},{"就把这一行给竖过来显示,"},{"我想你会做到。"}};
int length = getMaxLength(arr);
char[][] chars = new char[3][length];
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
for (int k = 0; k < arr[i][j].length(); k++) {
char[] chars1 = arr[i][j].toCharArray();
System.arraycopy(chars1, 0, chars[i], 0, chars1.length);
}
}
}
for (char[] aChar : chars) {
for (char c : aChar) {
System.out.print(c + " ");
}
System.out.println();
}
System.out.println("翻转后");
char[][] charss = new char[length][3];
for (int i = 0; i < charss.length; i++) {
charss[i][0] = chars[0][i];
charss[i][1] = chars[1][i];
charss[i][2] = chars[2][i];
}
for (char[] value : charss) {
for (char c : value) {
if(c == '\u0000'){
System.out.print(" ");
}else{
System.out.print(c + " ");
}
}
System.out.println();
}
}
public static int getMaxLength(String[][] strings){
int n = strings[0][0].length();
for (String[] string : strings) {
for (String s : string) {
if (n < s.length()) {
n = s.length();
}
}
}
return n;
}