Swift は文字列の最初の文字にのみ .uppercaseString を適用します 質問する

Swift は文字列の最初の文字にのみ .uppercaseString を適用します 質問する

私はオートコレクトシステムを作成しようとしていますが、ユーザーが大文字の単語を入力すると、オートコレクトが機能しません。これを修正するために、入力した文字列のコピーを作成し、.lowercaseStringを適用して比較しました。文字列が実際に誤って入力されている場合は、単語を修正する必要があります。ただし、入力した単語を置き換える単語はすべて小文字です。そのため、最初の文字にのみ.uppercaseStringを適用する必要があります。当初は、次のように使用できると考えていました。

nameOfString[0]

しかし、どうやらこれは機能しないようです。文字列の最初の文字を大文字にして、最初の文字が大文字の完全な文字列を印刷するにはどうすればよいでしょうか?

ご協力いただきありがとうございます!

ベストアンサー1

API ガイドラインに準拠した変更バージョンと非変更バージョンを含みます。

スイフト3:

extension String {
    func capitalizingFirstLetter() -> String {
        let first = String(characters.prefix(1)).capitalized
        let other = String(characters.dropFirst())
        return first + other
    }

    mutating func capitalizeFirstLetter() {
        self = self.capitalizingFirstLetter()
    }
}

スイフト4:

extension String {
    func capitalizingFirstLetter() -> String {
      return prefix(1).uppercased() + self.lowercased().dropFirst()
    }

    mutating func capitalizeFirstLetter() {
      self = self.capitalizingFirstLetter()
    }
}

おすすめ記事