Hi, I’m stuck trying to convert the encrypted array to a string in Caesar’s Chiper point 14. Can anyone please help me understand how I should solve this?
My code:
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"
var secretMessageLowercased = secretMessage.lowercased()
var message = Array(secretMessageLowercased)
for i in 0 ..< message.count {
for j in 0 ..< alphabet.count {
if message[i] == alphabet[j] {
message[i] = alphabet[(j + 3) % 26]
break
}
}
}
let encryptedMessage = message
let messageConvertedToString = encryptedMessage.joined()
print("The word you want to chipher is -< \(secretMessage) >-")
print("Your encrypted word is -< \(messageConvertedToString) >-")
Output:
Output:
CaesarCipher.swift:16:49: error: referencing instance method 'joined(separator:)' on 'BidirectionalCollection' requires the types 'String.Element' (aka 'Character') and 'String' be equivalent
let messageConvertedToString = encryptedMessage.joined()
^
Swift.BidirectionalCollection:1:11: note: where 'Self.Element' = 'String.Element' (aka 'Character')
extension BidirectionalCollection where Self.Element == String {
^
Thank you in advance!
Regards,
Fredrik