Chương trình mã hóa ceasar dùng modular trên Java
mình đang viết 1 chương trình mã hóa nhỏ nhưng khi in ra thì khoảng trống lại thành chữ c. Mong mn giúp sửa lại ạ.
public static void main(String[] args) {
System.out.println("Enter your message: ");
Scanner inp = new Scanner(System.in);
final String alpha = " abcdefghijklmnopqrstuvwxyz";
String str = inp.nextLine(); //the string user input
String ans = ""; //the encrypted output string
int ind1; int ind2; //the index of str and ans strings
char x; //the character followed by ind2 in ans string
int i = 0;
while (i < str.length()) {
ind1 =alpha.indexOf(str.charAt(i)); //index of str with i variable
ind2 = 1+ (ind1 + 3-1)%26; //using ind1 to count ind2
i++;
x = alpha.charAt(ind2);
ans = ans +x;
}
System.out.println(ans);
đây là đề bài:
Caesar cipher is a substitution cipher method which was used by Julius Caesar to protect
private information from the enemies. By replace each letter in the original letter with a letter
some fixed positions down the alphabet, the result is meaningless to anyone who doesn’t
know the secret.
Write a program that apply Caesar cipher on a message taken from user and print the
result. Assuming all input letters are lower case. The letters shift are provided as below.
Plain: ABCDEFGHIJKLMNOPQRSTUVWXYZ
Cipher: DEFGHIJKLMNOPQRSTUVWXYZABC
E.g. Original message: hello world
Encrypted message: khoor zruog
Thêm điều kiện để chương trình ko mã hóa khoảng trắng.
Nếu index của chuỗi được nhập là vị trí 0 trong chuỗi alpha, tức là khoảng trắng, thì gán x bằng khoảng trắng luôn, còn lại thì mã hóa.
tks bạn nhé. mình sửa đc r
bài này trên web nào vậy