[ java ] JavaFestival10 - Question1 - 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 한다. > java

본문 바로가기

사이트 내 전체검색

java

[ java ] JavaFestival10 - Question1 - 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파…

작성일 20-12-22 17:45

페이지 정보

작성자 웹지기 조회 2,137회 댓글 0건

본문

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



추천0

비추천 0

댓글목록

등록된 댓글이 없습니다.

전체 113건 2 페이지

이미지 목록

게시물 검색
Copyright © 즐거운 코딩 생활 ( funyphp ). All rights reserved.
PC 버전으로 보기