1. ホーム
  2. アイオス

[解決済み】Swiftで文字列の最初の文字だけに.uppercaseStringを適用する。

2022-04-03 05:56:07

質問

オートコレクトシステムを作ろうとしているのですが、ユーザーが大文字の単語を入力すると、オートコレクトが機能しません。これを解決するために、入力された文字列のコピーを作成し、.lowercaseStringを適用して、両者を比較しました。確かに文字列がミスタイプされていれば、その単語を修正するはずです。しかし、その場合、タイプされた単語を置き換える単語はすべて小文字になります。そこで、最初の文字だけに.uppercaseStringを適用する必要がある。私はもともと、次のように使えると考えていました。

nameOfString[0]

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

助けてくれてありがとうございます

解決方法は?

APIガイドラインに準拠した変異版と非変異版を含む。

Swift 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()
    }
}

Swift 4:

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

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