【训练4】输出古诗的三种格式(数组越界错误的解决思路)

【训练4】输出古诗
创建Poetry类,声明一个字符型二维数组,将古诗《春晓》的内容赋值于二维数组,然后分别用横板和竖版两种方式输出。

/*【训练4】输出古诗
 * 创建Poetry类,声明一个字符型二维数组,将古诗《春晓》的内容赋值于二维数组,
 * 然后分别用横板和竖版两种方式输出。*/

package SZ;

 public class Xl4Poetry {

	   public static void main(String[] args) {
		// TODO 自动生成的方法存根
		   	  String arr[][] = {							//声明并定义数组,4行*5列
		   			{"春","眠","不","觉","晓",","},
		   			{"处","处","闻","啼","鸟","。"},
		   			{"夜","来","风","雨","声",","},
		   			{"花","落","知","多","少","。"}
		   	  }; 		   	 
		   	     int len = arr.length;
		   	     
		   	     for(int i = 0;i < len;i++){			//(横板)遍历字符型二维数组
		   		     for(int j = 0;j < arr[i].length;j++) {
		   		      System.out.print(arr[i][j]);			//输出i行,j列的元素。
		   		 }
		   	      System.out.println();						//输出i行元素结束后,换行回车
		   	     }
		   	     
		   	  System.out.println();							//换行,遍历竖版的古诗,从左往右输出。
		   	  
		   	     for(byte j = 0;j < len + 2;j++){			//(竖版)遍历字符型二维数组,行转列,列转行,画图理解。
		   		     for(byte i = 0;i < len ;i++) {			//注意:此处数据类型用int会应为精度过大,出现错误:java.lang.ArrayIndexOutOfBoundsException
		   			  System.out.print(arr[i][j]); 			//(接上)换用小精度byte即可
		   		     }
		   		  System.out.println();						//竖版换行输出
		   	     }
		   	     
		   	  System.out.println();							//换行,输出另一个版本的竖版古诗,从右往左输出
		   	     
		   	     for(byte i = 0;i <= len + 1;i++) {
		   	    	 for(byte j = 3;j >= 0;j--) {
		   	    		 System.out.print(arr[j][i]);
		   	    	 }
	   	    	  System.out.println();

		   	     }
		   	     
	   }
	   

 }


【训练4】输出古诗的三种格式(数组越界错误的解决思路)_第1张图片

java.lang.ArrayIndexOutOfBoundsException(数组越界错误)简单的解决思路:
1、降低下标的数据精度。
2、精准到个位数数字,精确设置下标的数据范围。
3、挺奇怪的可以慢慢尝试范围。

你可能感兴趣的:(Java从入门到精通,java,算法,jvm)