首頁 >Java >java教程 >為什麼 Java 中的 toString() 無法將陣列轉換為人類可讀的字串?

為什麼 Java 中的 toString() 無法將陣列轉換為人類可讀的字串?

Linda Hamilton
Linda Hamilton原創
2024-11-16 04:37:03626瀏覽

Why Does `toString()` Fail to Convert Arrays to Human-Readable Strings in Java?

為什麼toString() 方法不能滿足數組

在Java 中,toString() 方法是將物件轉換為陣列的便利工具他們的人類可讀的字串表示形式。然而,當應用於數組時,它的行為可能會很奇怪。

問題:

當嘗試使用 toString() 將字元陣列轉換為字串時,Java 不會提供預期的輸出。相反,它會產生一個令人困惑的字串,其中包含括號、表示數組元素類型的字元(“C”表示 char)以及數字哈希碼(“[C@e53108”)。

解釋:

Java 對數組的預設toString() 實作旨在返回數組的類型及其“身份哈希碼”,這是內存中數組對象的唯一識別碼。此資訊主要用於調試目的,而不是供人類使用。

解:

為了獲得人類可讀的陣列表示,Java 提供了替代方法稱為 Arrays.toString()。此方法將陣列元素轉換為逗號分隔的字串,從而提供更易於存取的輸出。

在範例程式碼中,以下修改解決了問題:

System.out.println(Arrays.toString(Array));

透過使用陣列。 toString(),輸出現在正確地按預期返回“abcdef”,沒有任何亂碼。

歷史錯誤?

Java 對陣列的預設 toString() 行為經常被批評為“錯誤”,因為它可能令人困惑且不直觀。一些開發人員認為,預設情況下它應該以更有意義的方式傳回數組的元素,類似於 Arrays.toString()。

以上是為什麼 Java 中的 toString() 無法將陣列轉換為人類可讀的字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn