1. 程式人生 > 實用技巧 >01.陣列內容列印(String形式)

01.陣列內容列印(String形式)

01.陣列內容列印(String形式)

原始碼展示

//Arrays類中的toString方法(接收Long型別的陣列),形參型別可以根據情況去變化
public static String toString(long[] a) {
        if (a == null)
            return "null";
        int iMax = a.length - 1;
        if (iMax == -1)
            return "[]";

        StringBuilder b = new StringBuilder();
        b.append('[');
        for (int i = 0; ; i++) {
            b.append(a[i]);
            if (i == iMax)
                return b.append(']').toString();
            b.append(", ");
        }
    }

思路提取

1.第一步,形參的型別與實參型別保持一致,返回值型別為String
2.第二步,判斷陣列是否為空(引用資料型別應該執行的判斷),
        為空則返回null,
        不為空進入第三步(不用else,因為滿足if條件的都直接返回一個值並且結束程式了)
3.第三步,拿變數imax(名字隨意)接收形引數組(a)的最後一個位置(陣列長度-1)
4.第四步,判斷imax(陣列最後一個位置)是否為-1,若是,則返回[](代表陣列長度為0)
5.第五步,例項化一個StringBuilder類(陣列內容的拼接,效率較StringBuffer高),
        其物件名設stringBuilder
第六步,為stringBuilder新增左括號"["(append)
第七步,遍歷陣列a,
     當i的位置不為最後一個時,為stringBuilder新增陣列元素值(a[i])以及逗號(新增分步驟)
     當i的位置為最後一個,新增陣列最後一個元素值,
     返回stringBuffer物件呼叫toString方法的結果(呼叫前要append上右括號"]",可以一步)
   //注意:是否為最後一個用到了if條件判斷 if(i==imax)
  //     為最後一個時,不需要新增逗號了(新增分步驟的原因)    

適用範圍

//形參為8種基本資料型別所對應的陣列(short[],byte[],int[],float[],double[],char[],boolean[],long[])
//方法可以推廣到ArrayList陣列內容的列印