はじめに
Character型のプロパティとして定義されているisUppercase
とisLowercase
を初めて使ったので備忘録として残します。
環境
- Swift: version 5.6
- Xcode: Version 13.3.1 (13E500a)
- macOS: 12.3.1 (21E258)
使い方
例題
文字列中に大文字と小文字の両方が含まれるかどうかを調べたい。
色々とやり方はあると思いますが、今回は下記の手順で実装してみます。
- 文字列をfor-in文でCharacterとして取り出す。
-
isUppercase
プロパティで大文字を含むかどうか判定。 -
isLowercase
プロパティで小文字かどうかを判定。
実装
func containUppercaseAndLowercase(_ string: String) -> Bool {
var result = (uppercase: false, lowercase: false)
for character in string {
if character.isUppercase == true {
result.uppercase = true
break
}
}
for character in string {
if character.isLowercase == true {
result.lowercase = true
break
}
}
if result == (true, true) {
return true
} else {
return false
}
}
containUppercaseAndLowercase("AB") //false
containUppercaseAndLowercase("Ab") //true
containUppercaseAndLowercase("aB") //true
containUppercaseAndLowercase("ab") //false
2022/05/11追記
コメントでcontains(where:)
を使ったやり方を教えていただいたので追記します。
コードがかなりスッキリします。
func containUppercaseAndLowercase(_ string: String) -> Bool {
string.contains { $0.isUppercase } && string.contains { $0.isLowercase }
}
さいごに
isUppercase
とisLowercase
の使い方として、
文字列中に大文字と小文字の両方が含まれるかどうかを判定する関数を実装してみました。
最後まで見ていただきありがとうございました。
参考記事