如题今天上课老师讲得不怎么容易理解,现请坛友协助在每句后详细注解
多谢!public class TestAaary { /**
 * 将一首古诗保存在一个二维数组中, 并将其按照古文的排列方式输出来。
 */
public static void main(String[] args) {
char[][] arr = new char[4][7];
String s = "朝辞白帝彩云间千里江陵一日还两岸猿声啼不住轻舟已过万重山"; for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
arr[i][j] = s.charAt(i * 7 + j);
}
} for (int i = 0; i < arr[0].length; i++) {
for (int j = 0; j < arr.length; j++) {
System.out.print(arr[arr.length - j - 1][i] + "  ");
}
System.out.println();
}
}

解决方案 »

  1.   


    public class TestAaary { /**
     * 将一首古诗保存在一个二维数组中, 并将其按照古文的排列方式输出来。
     */
    public static void main(String[] args) {
    char[][] arr = new char[4][7]; //4行7列的二维数组
    String s = "朝辞白帝彩云间千里江陵一日还两岸猿声啼不住轻舟已过万重山"; for (int i = 0; i < arr.length; i++) { //2维数组之行(外围循环)
    for (int j = 0; j < arr[i].length; j++) { //二维数组之列(内层循环)
    arr[i][j] = s.charAt(i * 7 + j); //将第i句诗的第j个字存到第i行第j列
    }
    } for (int i = 0; i < arr[0].length; i++) { //以二维数组的列作为外围循环,循环次数7
    for (int j = 0; j < arr.length; j++) { //以二维数组的行作为内层循环,循环次数4
    System.out.print(arr[arr.length - j - 1][i] + " "); //某行打印的字是每句诗的第i个字,第4句诗的字先出来(在左边)
    }
    System.out.println(); //换行
    }
    }
    }
      

  2.   


    public class TestAaary { /**
     * 将一首古诗保存在一个二维数组中, 并将其按照古文的排列方式输出来。
     */
    public static void main(String[] args) {
    char[][] arr = new char[4][7]; // 声明一个二维数组用来存储如下内容
    /* 
     * 轻 两 千 朝
     * 舟 岸 里 辞
     * 已 猿 江 白
     * 过 声 陵 帝
     * 万 啼 一 彩
     * 重 不 日 云
     * 山 住 还 间
     */
    String s = "朝辞白帝彩云间千里江陵一日还两岸猿声啼不住轻舟已过万重山"; // 古诗内容字符串
    for (int i = 0; i < arr.length; i++) { // 遍历二维数组第一维(列)
    for (int j = 0; j < arr[i].length; j++) { // 遍历二维数组第二维(行)
    arr[i][j] = s.charAt(i * 7 + j); // 把古诗内容字符串按照每7字一列放入二维数组
    }
    }
    for (int i = 0; i < arr[0].length; i++) { // 遍历二维数组第二维(行)
    for (int j = 0; j < arr.length; j++) { // 遍历二维数组第一维(列)
    System.out.print(arr[arr.length - j - 1][i] + " "); // 反向打印二维数组每行的字符并加空格
    }
    System.out.println(); // 打印一个空行
    }
    }
    }我也闲的蛋疼了...