Caesar Cipher

  • + 0 comments
        public static String caesarCipher(String s, int k) {
            // Write your code here
            StringBuffer sb = new StringBuffer();
            int dk = k % 26;
            
            for (int i = 0; i < s.length(); i++) {
                char c = s.charAt(i);
                boolean upperAlpha = ('A' <= c && c <= 'Z') ? true : false;
                
                char minChar = (upperAlpha) ? 'A' : 'a';
                char maxChar = (upperAlpha) ? 'Z' : 'z';
                
                if (minChar <= c && c <= maxChar) {
                    int encrypted = c + dk;
                    if (encrypted > maxChar) {
                        encrypted = minChar + (encrypted - maxChar - 1);
                    }
                    sb.append((char)encrypted);                
                } 
                else {
                    sb.append(s.charAt(i));
                }
            }
            
            return sb.toString();
        }