본문 바로가기

자바

시저암호

반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package javaalgorithm;
 
public class Caesar {
    String caesar(String s, int n) {
        StringBuffer sb = new StringBuffer();
        char[] caesar = s.toCharArray();
                
        for(char c : caesar){
            if(c != ' '){ 
                for(int i=0;i<n;i++){
                    c=(char)(c+1);
                    if(!((c>='a' && c<='z')|| (c>='A' && c<='Z'))){
                        if(c>'Z' && c<'a') c=(char)(c-('Z'-'A'+1));
                        else if(c<'A') c=(char)(c+'Z'-'A'-1);
                        else if(c>'z') c=(char)(c-('z'-'a'+1));
                        else if(c<'a') c=(char)(c+'z'-'a'-1);
                    }
                }
                sb.append(c);
            }
            else 
                sb.append(c);
        }
        
        return sb.toString();
    }
 
    public static void main(String[] args) {
        Caesar c = new Caesar();
        System.out.println("s는 'a B z', n은 4인 경우: " + c.caesar("a B z"4));
    }
}
cs


여러가지로 고민해 보다가 짠 소스이다.

String값에 +해서 넣으면 오래 걸린다고 하길래 요새는 StringBuffer를 이용해서 하는 방법으로만 코드를 짜보고 있다.

아직 자바에서 지원해 주는 유틸들을 잘 모르기 때문에 코드가 참 조잡해 보인다.

'자바' 카테고리의 다른 글

최대공약수 최소공배수 구하기  (0) 2016.11.17
가운데 글자 가져오기  (0) 2016.11.17
나누어 떨어지는 숫자배열  (0) 2016.11.14
문자열 내림차순으로 배치하기  (0) 2016.11.14
삼각형 출력하기  (0) 2016.11.14