a.java中的toString()方法用于描述對(duì)象本身.每個(gè)一個(gè)對(duì)象,系統(tǒng)都默認(rèn)自帶toString方法,如果想要將對(duì)象輸出為自己想要的更加規(guī)范的格式,則需要重寫方法.
b.對(duì)于一些比較簡單的輸出格式,往往可以直接使用string.format()完成格式輸出.如:
@Override
public String toString() {
return String.format("學(xué)生的名字叫做:%s,今年%d歲了", name,age);
}
輸出示例為: 學(xué)生的名字叫做:xixi,今年25歲了.
c. 對(duì)于一些較為復(fù)雜的輸出格式,往往需要用到StringBuilder類.StringBuilder的對(duì)象是一串可變的字符;從文檔了解到:(The principal operations on a StringBuilder are the append and insert methods, which are overloaded so as to accept data of any type.)其主要的用法是append和insert,這兩種方法可以接收任何類型的數(shù)據(jù).(Each effectively converts a given datum to a string and then appends or inserts the characters of that string to the string builder. The append method always adds these characters at the end of the builder; the insert method adds the characters at a specified point. )每一種方法都能將給定的數(shù)據(jù)轉(zhuǎn)換成字符然后添加append在builder字符串的最后或者insert進(jìn)指定的位置.其中最后一行代碼res.toString()的toString()方法的作用在于返回一個(gè)代表目標(biāo)對(duì)象的字符串.
實(shí)現(xiàn)代碼例如:
@Override
public String toString() {
StringBuilder res = new StringBuilder();
res.append(String.format("Array:size =%d,capacity = %d\n",size,data.length));
res.append('[');
for(int i = 0;i<size;i++) {
res.append(data[i]);
if(i != size - 1) {
res.append(",");
}
}
res.append(']');
return res.toString();
}
其對(duì)象輸出為:Stack:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],看似與format功能相同,但是實(shí)則通過append等方法,StringBuilder比String.format() 更加靈活,適用面更廣泛.