第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

為什么我不能從我的多維數組中打印字符串?

為什么我不能從我的多維數組中打印字符串?

拉風的咖菲貓 2023-06-08 19:12:23
我在其他帖子中讀到,System.out.println(finalPressedKey); 你應該寫而不是只寫System.out.println(Arrays.toString((finalPressedKey));,否則它只會返回保存字符串的位置(據我所知)。public static String PressedKey[] = new String[2000];public static String[][] finalPressedKey = {{ "", "", "", "", "", "", "", "", "", "", "", "" }}; // 12public static String FPK3;public static void upcounter(KeyEvent e) {    for (int x = 0; x < PressedKey.length; x++) {        if (PressedKey[x] != null && PressedKey[x + counter] != null) {        //FPK counter is supposed to be a line, and counter is where the words are supposed to be saved        finalPressedKey[FPKcounter][counter] =        finalPressedKey[FPKcounter] + PressedKey[x + counter];            System.out.println(Arrays.toString(finalPressedKey));        }    }每當我按下一個按鈕時,它應該保存在我的PressedKey數組中,并且 finalPressedKey 應該包含它自己,并且PressedKey(而且,應該只打印數組的最后一個元素),但它只是打印[[Ljava.lang.String;@76f42c4b]我也嘗試過使用Arrays.deepToString();,但它給了我與使用相同的輸出Arrays.toString();感謝您的幫助!
查看完整描述

4 回答

?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

AString[][]不是二維數組。它是一個數組String[]。區(qū)別很微妙但很重要。

該方法Arrays.toString()接受一個數組,遍歷其元素,調用toString()所有元素,并添加前綴、后綴和分隔符。因為你給它一個String[][](一個數組String[]),它會做以下事情:

  • 遍歷元素(每個元素都是一個String[]

  • 調用每個元素 - 給出數組的toString()默認值 - 即它的內存地址(不是真的但是為了這個目的它并不重要)toString()

  • 連接

幸運的是,有一種更簡單的方法 - 只需使用Arrays.deepToString(). 這表現得如您所料。


查看完整回答
反對 回復 2023-06-08
?
冉冉說

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];


查看完整回答
反對 回復 2023-06-08
?
慕沐林林

TA貢獻2016條經驗 獲得超9個贊

如果您只想存儲字符串行,普通的 String[] 對您有好處

finalPressedKey[FPKcounter] += PressedKey[x + counter];

盡管我不建議這樣做,但無論您想要完成什么,因為每次按下一個鍵時都會創(chuàng)建一個新的 String 對象。

也許以不同的方式提出問題并告訴我們您要做什么。我想字符串數組可能不是要走的路。


查看完整回答
反對 回復 2023-06-08
?
蝴蝶不菲

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]);

   } 

}


如果我理解正確的話。


查看完整回答
反對 回復 2023-06-08
  • 4 回答
  • 0 關注
  • 203 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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