4 回答

TA貢獻1874條經驗 獲得超12個贊
AString[][]
不是二維數組。它是一個數組String[]
。區(qū)別很微妙但很重要。
該方法Arrays.toString()
接受一個數組,遍歷其元素,調用toString()
所有元素,并添加前綴、后綴和分隔符。因為你給它一個String[][]
(一個數組String[]
),它會做以下事情:
遍歷元素(每個元素都是一個
String[]
)調用每個元素 - 給出數組的
toString()
默認值 - 即它的內存地址(不是真的但是為了這個目的它并不重要)toString()
連接
幸運的是,有一種更簡單的方法 - 只需使用Arrays.deepToString()
. 這表現得如您所料。

TA貢獻1877條經驗 獲得超1個贊
我不理解整個代碼,但以下語句非??梢桑?/p>
finalPressedKey[FPKcounter][counter] = finalPressedKey[FPKcounter] + PressedKey[x + counter];
因為它將數組 ( finalPressedKey[...]
) 添加到字符串 ( PressedKey[...]
),這將導致出現奇怪的文本 - 數組的標準文本表示形式(由 返回toString
)。(從數學的角度來看,在分配之前有 2 個索引 2D_ 并且同一矩陣在右側(1D)只有一個索引很奇怪)
我不確定,因為我們看不到是什么counter
,但我相信你想要這樣的東西:
finalPressedKey[FPKcounter][counter] = finalPressedKey[FPKcounter][counter] + PressedKey[x + counter];
也就是說,[counter]
第二行有一個額外的。
這也可以寫成
finalPressedKey[FPKcounter][counter] += PressedKey[x + counter];

TA貢獻2016條經驗 獲得超9個贊
如果您只想存儲字符串行,普通的 String[] 對您有好處
finalPressedKey[FPKcounter] += PressedKey[x + counter];
盡管我不建議這樣做,但無論您想要完成什么,因為每次按下一個鍵時都會創(chuàng)建一個新的 String 對象。
也許以不同的方式提出問題并告訴我們您要做什么。我想字符串數組可能不是要走的路。

TA貢獻1810條經驗 獲得超4個贊
您必須使用打印數組的元素
for(int i = 0; i<finalPressedKey[0].length; i++){
for(int j=0; j<finalPressedKey[1].length; j++){
System.out.println(finalPressedKey[i][j]);
}
}
如果我理解正確的話。
添加回答
舉報