[Swift]プログラマー(Lv 1)-新しいアイデンティティを推奨[2021 KAKAKAO BLIND RECRUIMENT]


こんにちは!
https://programmers.co.kr/learn/courses/30/lessons/72410
import Foundation

func solution(_ new_id:String) -> String {
    // 1단계
    var str = new_id.lowercased()
    
    // 2단계
    var chars = CharacterSet.lowercaseLetters
    chars.formUnion(CharacterSet.decimalDigits)
    chars.insert(charactersIn: "-_.")
    
    let notAllowed = chars.inverted
    str = str.components(separatedBy: notAllowed).joined()
    
    // 3단계
    while str.contains("..") {
        str = str.replacingOccurrences(of: "..", with: ".")
    }
    
    // 4단계
    str = str.trimmingCharacters(in: ["."])
    
    // 5단계
    if str.count == 0 {
        str = "a"
    }
    
    // 6단계
    if str.count >= 16 {
        let start = str.startIndex
        let end = str.index(str.startIndex, offsetBy: 15)
        let range = start..<end
        str = String(str[range])
        str = str.trimmingCharacters(in: ["."])
    }
    
    // 7단계
    if str.count <= 2 {
        let endIndex = str.index(before: str.endIndex)
        let add = String(str[endIndex])
        while str.count != 3 {
            str += add
        }
    }
    
    return str
}
この問題...7段階はそのまま実施すれば良いのですが、難しい問題ではありませんが…
SWIFTで解きたいから.注意すべき点がたくさんあります!😅
SWIFTのCharacterSetで許可されている文字(小文字、数字、「-.」)を使います.chars(グラフセット)を作成し、invertedを使用して許可されていない文字セット(notAllowed)を作成してフィルタします.
str.components(separatedBy: oks).joined()
そしてtrimmingCharacters、前後」です.削除に成功しました.trimmingCharactersは両端文字を消去する方法です.