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

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

密碼加密的基本算法無法按預期的字母數組工作

密碼加密的基本算法無法按預期的字母數組工作

蠱毒傳說 2021-12-10 09:55:27
所以,我有這個用于 Java 密碼的算法。我有一個字母數組:char[] alphabet = {'z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y'};還有一個存儲字符的表(基于輸入)。鑒于我已經檢查了很多次并且它完全按照預期存儲字符,這并不是那么重要。我下面有一個代碼,以便字母表數組中 Y 軸的字母值上的每個字母在字母表的“軸”上向右移動 Y+1 次,如果值超過 25,則返回到第一個值。這意味著如果“A”在 Y=0 處,它會從字母軸上的值 1 變為 2,這意味著“B”和“X”在 Y=2 處的值將 24 變為 27,并且因為超過 25 會變成 27-25=2,'B'。為什么下面的代碼為位于 X=0 Y=0 的字母“A”輸出“Z”?for(int p = 0; p < number; p++) {            for(int q = 0; q < number; q++) {                for(int r = 0; r < 26; r++) {                    if(table[q][p] == alphabet[r]) {                        table[q][p] = alphabet[(r+p+1)%26];                    }                }            }        }
查看完整描述

2 回答

?
蝴蝶不菲

TA貢獻1810條經驗 獲得超4個贊

我現在才意識到我的問題。該代碼將起作用,并將“A”更改為“B”。但是它可以繼續測試從 2 到 25 的 r 值,該表槽是否等于下一個數字。當然,它做到了。字符,現在是 'B',等于字母數組的索引 2,依此類推,直到它最終結束,變成 'Z'。我所要做的就是添加break;到最后一個for循環中。感謝您的幫助!


查看完整回答
反對 回復 2021-12-10
?
藍山帝景

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

您添加的代碼將在 X=0 和 Y=0 時為“A”生成字母“Z”。我假設 [q] 和 [p] 等于 0


問題出在這里:


if(table[q][p] == alphabet[r]) {

     table[q][p] = alphabet[(r+p+1)%26];

 }

如果 table[0][0] 保存“A”值,則當 r 變量等于 25 時,此條件為真。因為在您的字母表數組中,“A”字母位于索引 25 下。然后:


table[q][p] = alphabet[(r+p+1)%26];

所以 table[0][0] 將等于字母表 [(25+0+1)%26] 并且 26%26 是 0。


table[q][p] = alphabet[0]

這是數組中的“Z”字母。


更新:試試這個:


    Character[] alphabet = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};

    Character[][] table = {{'a', 'b'}, {'c', 'd'}, {'e', 'f'}};


    for (int x = 0; x < table.length; x++) {

        for (int y = 0; y < table[x].length; y++) {

            int index = Arrays.asList(alphabet).indexOf(table[x][y]);

            table[x][y] = alphabet[(index + y + 1) % 26];

        }

    }


查看完整回答
反對 回復 2021-12-10
  • 2 回答
  • 0 關注
  • 191 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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