亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么java中的toString方法似乎不適用于數組

為什么java中的toString方法似乎不適用于數組

慕的地6264312 2019-07-13 15:23:47
我希望使用java中的toString()方法將字符數組轉換為String對象。下面是我使用的測試代碼片段:import java.util.Arrays;class toString{     public static void main(String[] args){         char[] Array = {'a', 'b', 'c', 'd', 'e', 'f'};         System.out.println(Array.toString());         }}原則上,它應該打印ABCDEF,但它是印刷像…之類的隨意胡言亂語。[C@6e1408或[C@e 53108]每次程序執行時。我不需要有別的選擇,但我想知道為什么會這樣。
查看完整描述

3 回答

?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

才能獲得人類的可讀性toString(),您必須使用Arrays.toString(),就像這樣:

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

爪哇toString()數組的輸出[,后面跟著一個表示數組元素類型的字符(在您的例子中)Cchar),然后是@然后是數組的“標識哈希碼”(把它想象成一個“內存地址”)。

這種可悲的狀況通常被認為是Java的“錯誤”。

看見這個答案其他“錯誤”列表。


查看完整回答
反對 回復 2019-07-13
?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

我不知道你從哪里得到“原則上”應該打印“ABCDEF”的想法。文件記錄在哪里?

有點像[C@6e1408當然隨機胡言亂語-與任何不覆蓋的其他類型一樣,從對象構造字符串的方式是一樣的toString()Inherits-它是類型的表示([指示陣列;C指示char(原語類型)后面跟著十六進制的標識哈希代碼。見文件Object.toString()關于細節。碰巧,數組不覆蓋toString.

如果你想[a, b, c, d, e, f]你可以用Arrays.toString(char[])..如果你想abcdef你可以用new String(char[]).


查看完整回答
反對 回復 2019-07-13
?
呼如林

TA貢獻1798條經驗 獲得超3個贊

數組不覆蓋toString..有一個靜態方法:java.util.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));
    }}


查看完整回答
反對 回復 2019-07-13
  • 3 回答
  • 0 關注
  • 541 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號