3 回答

TA貢獻2036條經(jīng)驗 獲得超8個贊
toString()數(shù)組的方法返回String描述數(shù)組標識而不是其內(nèi)容的描述。這是因為數(shù)組不會覆蓋Object.toString(),其文檔解釋了您所看到的內(nèi)容:
toString用于類的方法Object返回一個字符串,該字符串由對象是其實例的類的名稱,符號字符“ @”以及對象的哈希碼的無符號十六進制表示組成。換句話說,此方法返回的字符串等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
要獲取String數(shù)組內(nèi)容的表示形式,可以使用Arrays.toString(Object[])。
在String此方法返回由每個元素的的toString()表示,在順序出現(xiàn)在陣列中并包含在方括號("[]")。相鄰元素之間用逗號和空格(", ")分隔。
例如,在您的數(shù)組上調(diào)用此方法將導致以下結(jié)果String:
"[Einstein, , Newton, , Copernicus, , Kepler.]"
請注意,由于數(shù)組的元素中String已經(jīng)包含標點符號和空格,因此會產(chǎn)生雙逗號和奇數(shù)間距。刪除那些:
String [] genius = {"Einstein", "Newton", "Copernicus", "Kepler"};
然后,該方法將返回以下內(nèi)容String:
"[Einstein, Newton, Copernicus, Kepler]"
請務(wù)必注意,使用此方法無法控制結(jié)果的格式String??焖贆z查數(shù)組的內(nèi)容很不錯,但僅限于此用途。例如,如果您不希望使用這些方括號,或者不想逐行列出每個元素,該怎么辦?
此時,您應(yīng)該開始看到實現(xiàn)自己的方法以以特定于您的任務(wù)的方式輸出數(shù)組內(nèi)容的價值。正如其他人所建議的那樣,請通過使用for循環(huán)并構(gòu)建String要輸出的新結(jié)果來進行實踐。
您可以for在此Java教程文章中找到有關(guān)循環(huán)的更多信息。通常,Java入門對于初學者來說是一本好書,應(yīng)該很好地配合您的課程。

TA貢獻2019條經(jīng)驗 獲得超9個贊
使用Arrays類為您擴展數(shù)組:
System.out.println(Arrays.toString(genius));
會給你
[愛因斯坦,牛頓,哥白尼,開普勒。]
雙重逗號是因為您將它們包括在數(shù)組中。刪除它們,您會得到一個漂亮的逗號分隔列表。
添加回答
舉報