diff options
Diffstat (limited to 'challenge-097/ziameraj16/java/CaesarCipher.java')
| -rw-r--r-- | challenge-097/ziameraj16/java/CaesarCipher.java | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/challenge-097/ziameraj16/java/CaesarCipher.java b/challenge-097/ziameraj16/java/CaesarCipher.java new file mode 100644 index 0000000000..4769b1b44e --- /dev/null +++ b/challenge-097/ziameraj16/java/CaesarCipher.java @@ -0,0 +1,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(); + } +} + |
