public class p4_4 {
public static void main(String[] args){
int Array[][]={{1,2,9,10,25},{4,3,8,11,24},{5,6,7,12,23},{16,15,14,13,22},{17,18,19,20,21}};
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
System.out.print(Array[i][j]+" ");
}
    System.out.println(" ");
}
}}打印结果为:
1 2 9 10 25  
4 3 8 11 24  
5 6 7 12 23  
16 15 14 13 22  
17 18 19 20 21 
要使打印结果对齐,如下:
打印结果为:
 1  2  9 10 25  
 4  3  8 11 24  
 5  6  7 12 23  
16 15 14 13 22  
17 18 19 20 21 
应该如何修改

解决方案 »

  1.   

    判断Array[i][j]<10就多打印一个空格
      

  2.   

    你可以用里面和C差不多的格式化输出的方法如果你熟悉且喜欢使用C的printf函数,可以从www.horstmann.com/corejava.html查看Format类,它是精确重现了printf的行为的java类例如,Format.printf("%8.2",1000.0/3.0)  则将输出字符串“ 3333.33”  前面有个空格,以符合共占8位,且小数点后面为两位的格式!!而且还注意!是字符串~~  因为是输出!所以不要紧
      

  3.   

    加个判断if Array < 10 肯定是一位数 所以打两个空格(根据情况)elseArray <100 肯定是两位数 打一个空格.
    .
    .
    .
    .
      

  4.   

    因为楼主的这个问题,逻辑很简单,用复杂的会影响效率(虽然现在都无需关心,但也是一个好习惯)如果觉得代码不规范,就把6楼的代码封装成一个方法printFormat(int i, int length)
      

  5.   

    用一个循环判断,
    不过先确定你要空的个数,比如个位数的多空点(6格),十位数4格
      for(int i=0;i<5;i++){
                for(int j=0;j<5;j++){
                       System.out.print(array[i][j]);
                       howManySpace(array[i][j]);
                       
    }
    void howMantSpace(int goOn){
                              int times = 0;
                              while(goON > 0){
                                    //个位数/10 = 0,十位数/10 = 1 - 9,依次.
                                    times++;
                                    goOn = goOn / 10;
                              }
                    for(int i = times;i > 0;i++)
                         System.out.print("  ");       //每次循环打印2个空格
    }
      

  6.   

    将打印数组的语句写为:System.out.printf("%2d ",Array[i][j]);可达到LZ要求
      

  7.   

    System.out.print(Array[i][j]+" ");
    改成
    System.out.print(Array[i][j]+"\t");
    就得了呵呵
      

  8.   

    呵呵,13,14楼的方法都很好啊,借鉴,特别是十三楼.原先还不知道java里也有pritf()函数啊