我想在Java中做一個凱撒密碼,它會詢問你要轉換什麼字以及多少。我已經得到了一個出界異常,但是是固定的,但它仍然是不工作凱撒密碼不打印最終陣列
這裏是我的代碼:
package cipher;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class mycipher {
public static void main(String[] args) {
ArrayList<Character> finalpro = new ArrayList<Character>();
ArrayList<Integer> modlet = new ArrayList<Integer>();
Scanner consolereader= new Scanner(System.in);
ArrayList<Character> letters = new ArrayList<Character>();
char[] letters2 = {'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'};
for(int i=0; i<letters2.length; i++){
letters.add(letters2[i]);
}
System.out.println("what word would you like to cipher?");
String original = consolereader.nextLine();
System.out.println("how much would you like to shift it by");
int shift = consolereader.nextInt();
ArrayList<Character> userword = new ArrayList<Character>();
for(int i=0; i<original.length();i++){
userword.add(original.charAt(i));
}
for(int i=0; i<userword.size(); i++){
if(userword.get(i)==letters2[i]){
modlet.add(i%shift);
}
}
for(int i=0;i<modlet.size(); i++){
finalpro.add(letters2[modlet.get(i)]);
}
System.out.println(finalpro);
}
}
你能解釋什麼是不工作。 –
它不會打印出最後一個字 –