我想要解密某個文本。當我遇到字符串中的一個字母時,我想用字母表中的下一個字母替換它。然後在接下來的一輪中,我希望替換下一個字母。用其他字符替換字符
甲 - >乙
的k - >升
然後在第二輪所以應儘量
一個 - >ç
的k - >米
問題帶字符的是它包含各種奇怪的字符,當你遇到az並試圖替換它時,它會被一個奇怪的符號替代。
任何人都可以幫我從A-Z製作某種循環列表?在下面的代碼片段中,我創建了一個包含a到z的列表。在循環中,一個字符被選中,索引被搜索和「調整」,新字符應該被恢復。但它不起作用。 (一個原因列表是不是圓形)
public static void decipher(){
String cyphertext = "aVaqrprzoreoeratraWhyvhfraJnygreUbyynaqreqrgjrroebrefinaRqvguZnetbganneNzfgreqnzNaarjvytenntzrrxbzraznnezbrgabtrrarragvwqwrovwbznoyvwiraBznmnyurgzbrvyvwxuroorabzNaarabtrracnnejrxraqnnegrubhqrafpuevwsgRqvguSenaxvarraoevrsnnaTregehqAnhznaauhaiebrtrerohhezrvfwrvaSenaxshegnzZnva";
char[] plaintext = new char[cyphertext.length()];
List<Character> a2z = new ArrayList<Character>(26);
for (char c = 'A'; c <= 'Z'; c++){
a2z.add(Character.valueOf(c));
}
for(int i = 1; i < 26; i++){
for(int j = 0; j < cyphertext.length(); j++){
char currentChar = cyphertext.charAt(j);
int newCharIndex = a2z.indexOf(currentChar)+i;
plaintext[j] = a2z.get(newCharIndex);
}
}
}
但是,如果您將資本V轉移了12次,那麼它的價值會從86轉移到98,然後程序認爲它是小寫b。 – Nils
插件/編輯:(使用循環時)但其餘的工作。 – Nils
另一個小小的增加,我認爲-90 + 65導致-25應該是-26。否則:一個ascii值爲122,用1移動的'z'變爲123.然後在邊緣方法中,減去25得到98,即'b'。但它需要成爲'a'。 – Nils