From 3caf6c8bfb3f7f5cf91530793d31576696624852 Mon Sep 17 00:00:00 2001 From: Patrick Jakobsen <97399891+Pallepadehat@users.noreply.github.com> Date: Wed, 20 May 2026 14:08:30 +0300 Subject: [PATCH] Update CaesarCipher.swift --- .../caesar-cipher/CaesarCipher.swift | 47 ++++++++++++------- 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/5-arrays-and-sets/caesar-cipher/CaesarCipher.swift b/5-arrays-and-sets/caesar-cipher/CaesarCipher.swift index 2c2ee5f..447db3b 100644 --- a/5-arrays-and-sets/caesar-cipher/CaesarCipher.swift +++ b/5-arrays-and-sets/caesar-cipher/CaesarCipher.swift @@ -1,25 +1,36 @@ // Caesar Cipher 🏛 -// Sonny Li +// Patrick Jakobsen -var alphabet: [Character] = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"] - -var secretMessage = "Codecademy".lowercased() - -var message = Array(secretMessage) - -for i in 0 ..< message.count { - - for j in 0 ..< alphabet.count { +struct CaesarCipher { - if message[i] == alphabet[j] { - - message[i] = alphabet[(j+3) % 26] - break - + private let shift: Int + + init(shift: Int = 3) { + self.shift = shift } - } - + func encrypt(_ text: String) -> String { + let lowercaseText = text.lowercased() + + return String( + lowercaseText.map { character in + + guard let ascii = character.asciiValue else { + return character + } + + let shifted = ((Int(ascii) - 97 + shift) % 26) + 97 + + return Character(UnicodeScalar(shifted)!) + } + ) + } } -print(message) +// Example + +let cipher = CaesarCipher() + +let encryptedMessage = cipher.encrypt("Codecademy") + +print(encryptedMessage) // frghfdghpb