MorseコードとSwiftの辞書を使った文字列変換


まず、Morseコードと各アルファベット、数字、記号の対応関係を持つ辞書を作成します。以下は例です。

let morseCodeDict = [
    "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": "--..",
    "0": "-----", "1": ".----", "2": "..---", "3": "...--", "4": "....-", "5": ".....", "6": "-....", "7": "--...", "8": "---..", "9": "----.",
    ".": ".-.-.-", ",": "--..--", "?": "..--..", "'": ".----.", "!": "-.-.--", "/": "-..-.", "(": "-.--.", ")": "-.--.-", "&": ".-...",
    ":": "---...", ";": "-.-.-.", "=": "-...-", "+": ".-.-.", "-": "-....-", "_": "..--.-", "\"": ".-..-.", "$": "...-..-", "@": ".--.-.", " ": "/"
]

次に、与えられた文字列をMorseコードに変換する関数を作成します。以下は例です。

func convertToMorseCode(_ text: String) -> String {
    let uppercaseText = text.uppercased()
    var morseCode = ""

    for char in uppercaseText {
        if let code = morseCodeDict[String(char)] {
            morseCode += code + " "
        }
    }

    return morseCode
}

この関数は、与えられた文字列を大文字に変換し、1文字ずつ処理して対応するMorseコードに変換します。変換したMorseコードはスペースで区切られて連結されます。

例えば、以下のように呼び出すことで文字列をMorseコードに変換することができます。

let text = "Hello, World!"
let morseCode = convertToMorseCode(text)
print(morseCode)  // ".... . .-.. .-.. --- --..-- / .-- --- .-. .-.. -.. -.-.--"

このようにして、与えられた文字列をMorseコードに変換する方法を紹介しました。Swiftの辞書を使うことで、対応関係を効率的に管理し、文字列変換を行うことができます。是非、この方法を参考にしてみてください。