From 4f925ead2d05cb4402eff2e13aa597009946bc84 Mon Sep 17 00:00:00 2001 From: ziameraj16 Date: Thu, 28 Jan 2021 09:01:13 +0000 Subject: Java solution for Caesar Cipher --- challenge-097/ziameraj16/java/CaesarCipher.java | 33 +++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 challenge-097/ziameraj16/java/CaesarCipher.java (limited to 'challenge-097/ziameraj16/java/CaesarCipher.java') 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(); + } +} + -- cgit