[ java ] JavaFestival10 - Question1 - 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 한다.
페이지 정보
작성자 웹지기 댓글 0건 조회 2,139회 작성일 20-12-22 17:45본문
Question1
- 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 한다.
- A를 3만큼 밀면 D가 되고 z를 1만큼 밀면 a가 됩니다. 공백은 수정하지 않는다.
- 보낼 문자열 s와 얼마나 밀지 알려주는 n을 입력받아 암호문을 만드는 ceasar 함수를 완성해 보시오.
- "a B z" , 4를 입력 바았다면 "e F d" 를 리턴한다.
public class Question1 {
public static void main(String[] args) {
//어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로
//바꾸는 암호화 방식 - 시저암호
//A를 3만큼 밀면 D가 되고 Z를 1만큼 밀면 A 가 됩니다. 공백은 미수정
//보낼 문자열 s와 얼마나 밀지 알려주는 n을 입력받아 암호문을 만드는
//ceasar함수를 완성
//"a B z", 4를 입력받았다면 "e F d" 를 리턴한다.
//Ceasar c = new Ceasar("a B z", 4);
System.out.println(caesar("a B z", 4));
}
private static String caesar(String string, int num) {
String result = "";
for(int i=0; i<string.length(); i++) {
char a = string.charAt(i);
if(a>= 97 && a <= 122) { // 소문자 검사
if(a+num > 122) {
result += (char)(a+num-26);
} else {
result += (char)(a+num);
}
} else if(a >= 65 && a <= 90) { // 대문자 검사
if(a+num > 90) {
result += (char)(a+num-26);
} else {
result += (char)(a+num);
}
} else {
result += (char)a;
}
}
return result;
}
}
결과
e F d
댓글목록
등록된 댓글이 없습니다.