aboutsummaryrefslogtreecommitdiff
path: root/challenge-097/ziameraj16/java/CaesarCipher.java
blob: 4769b1b44e13b54c86d256df7a1b6e4a4516bc5b (plain)
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
33
import java.util.Scanner;

public class CaesarCipher {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Enter a string");
        String str = scanner.nextLine();
        System.out.println("Enter offset");
        int offset = scanner.nextInt();
        System.out.println("Output: "+ caesarCipher(str, offset));
    }

    private static String caesarCipher(String input, int offset) {
        StringBuilder sb = new StringBuilder();
        for (char character : input.toCharArray()) {
            if (character == ' ') {
                sb.append(character);
                continue;
            }
            int originalPosition = character - 'A';
            int newPosition = (originalPosition - offset) % 26;
            char newCharacter = (char) ('A' + newPosition);
            if (newPosition < 0) {
                newCharacter = (char) ('Z' + (newPosition + 1));
            }

            sb.append(newCharacter);
        }
        return sb.toString();
    }
}