Array.toString() 的意外輸出
在Java 中,toString() 方法通常用於將陣列轉換為人類- 可讀取的字串表示。但是,對於字元數組,預設的 toString() 實作會產生意外的輸出,該輸出顯示為隨機字元序列。
出現此問題是因為為陣列實作的預設 toString() 方法傳回數組的身份雜湊碼,用「[C@後面跟著一個十六進位數字」表示。這個表示對於調試目的很有用,但不適合人類
解決方案:使用Arrays.toString()
要取得字元數組的人類可讀的字元串表示形式,您需要使用Arrays.toString( ) 方法,該方法專門處理字元陣列並將其轉換為包含陣列中所有字元的字串。
以下是一個更新了示範如何使用 Arrays.toString() 的程式碼片段:
import java.util.Arrays; class ToString { public static void main(String[] args) { char[] array = {'a', 'b', 'c', 'd', 'e', 'f'}; System.out.println(Arrays.toString(array)); } }
此程式碼將列印預期輸出:「abcdef」。
說明
Arrays.toString() 方法專門設計用於處理各種類型的數組,包括字元數組。它迭代數組,將每個字元附加到結果字串中。此過程會產生人類可讀的數組字串表示形式。
預設行為的原因
陣列的預設 toString() 實作旨在提供簡潔的用於偵錯目的的陣列表示。透過顯示身份哈希碼,它允許開發人員快速識別數組的記憶體位置並將其與其他數組區分開來。
但是,這種表示法對於向使用者顯示陣列的內容或用於在需要讀取或處理字串表示的場景中使用。
以上是為什麼 Java 中的 Array.toString() 會產生意外的字元陣列輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!