java:利用數組實現將古詩詞縱向輸出


 

java:利用二維數組實現將古詩詞縱向輸出.

 

從網絡上隨便搜索一首古詩詞,這里刻意選擇句子長短不一的詩詞

1.首先先把詩詞放進一個二維數組中.

這里將數組類型定義成char 類型,因為將其定義為String [][]poem的話輸入句子時候表達形式就要這樣寫:

這種方式顯然非常的麻煩.

String poem[][]=String [][]poem{
    {"維","天","之","命",","},
    {"於","穆","不","已"},
            ……
    };

於是可以通過toCharArray()這個函數把字符串轉換為字符數組.

 1  1 public class poem {
 2  2     public static void main(String[] args) {
 3  3     char [][]poem=new char[][]{
 4  4     "維天之命,".toCharArray(),
 5  5     "於穆不已。".toCharArray(),
 6  6     "於乎不顯,".toCharArray(),
 7  7     "文王之德之純.".toCharArray(),
 8  8     "假以溢我,".toCharArray(),
 9  9     "我其收之。".toCharArray(),
10 10     "駿惠我文王,".toCharArray(),
11 11     "曾孫篤之。".toCharArray()
12 12     };

2.接下來就是思考怎么去排列的問題了,一共要循環多少次?
這里我們知道對於詞語,字數每一行並不固定,要找出最大的字數長度,也就是說循環的次數就是我們最大的字數長度.保證每一行每一個元素都被訪問到.
25    int max = 0;                // 獲取最大的字數長度
26     for (int i = 0; i < poem.length+1; i++) {
27         int t = poem[i].length;         // 獲取第i行的長度
28         if (t > max){                    // 第i行的長度大於最大值
29             max = t;        
30         }
31     }        
3.通過for循環,來把數組重新排列.
 32         for (int i=0;i<max;i++){                  //這里代表輸出多少行
 33             for (int j=arrays.length-1;j>=0;j--){
 34                                                     // j代表的是排列前數組的行,用來判斷原來第j行的字數
 35                 
 36                 if (i<arrays[j].length){
 37                     System.out.print(arrays[j][i]);
 38                 }else{
 39                     System.out.print(" ");
 40                 }
 41             }
 42             System.out.println();
 43         }
 44     }
 45 }                


運行之后,這里都意識到一個問題,這里的詞每一行的字數都不一樣,原來是有8行7列,而豎着輸出則會有7行8列.
顯然會有一個提示出現:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8
    at zhengli.daysixarr.main(daysixarr.java:27)

原來的27行代碼稍稍修改為28行代碼,就運行正常了.

原因是因為超出了數組的空間界限,

將數組原來的長度加上1,這樣子就把原來的7行8列,'擴展'成8行8列.

27        // int t = poem[i].length;         // 獲取第i行的長度
28         int t = poem[i].length+1;    

運行結果:

 

曾駿我假文於於維
孫惠其以王乎穆天
篤我收溢之不不之
之文之我德顯已命
。王。,之,。,
 ,  純   
    .   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM