【发布时间】:2021-01-10 19:45:45
【问题描述】:
如何统计字符串中大小写字母的个数?
例如:
输入:
你好世界
输出:
8 2
因为输入包含 8 个小写字母和 2 个大写字母。
【问题讨论】:
-
空白、符号和其他非字母字符应该如何处理?
标签: swift string uppercase lowercase
如何统计字符串中大小写字母的个数?
例如:
输入:
你好世界
输出:
8 2
因为输入包含 8 个小写字母和 2 个大写字母。
【问题讨论】:
标签: swift string uppercase lowercase
您可以通过使用isUppercase 和isLowercase 属性来使用Character 的内置功能:
var str = "Hello, playground"
var numOfUppercasedLetters = 0
var numOfLowercasedLetters = 0
for char in str {
if char.isUppercase {
numOfUppercasedLetters += 1
} else if char.isLowercase {
numOfLowercasedLetters += 1
}
}
print(numOfUppercasedLetters, numOfLowercasedLetters)
有关更多信息,请参阅此主题:How can I identify uppercase and lowercase characters in a string with swift?
【讨论】:
你可以像这样使用String的reduce(_:_:)函数:
var string = "Hello"
let (uppercase, lowercase) = string.reduce((0, 0)) { (result, character) -> (Int, Int) in
if character.isUppercase {
return (result.0 + 1, result.1)
} else if character.isLowercase {
return (result.0, result.1 + 1)
}
return result
}
print(uppercase, lowercase)
【讨论】:
我不确切知道以下代码是从哪个版本的 Swift 编译的,但我使用 Swift 5.4 对其进行了测试:
import Foundation
let testString = "ABCdefg"
let lowercase = testString.filter { $0.isLowercase }.count
let uppercase = testString.filter { $0.isUppercase }.count
print(lowercase, uppercase)
【讨论】:
import Foundation
let testString = "ABCdefg"
var uppercase = 0;
var lowercase = 0;
for character in testString {
if character.isUppercase {
uppercase += 1
} else {
lowercase += 1
}
}
print(uppercase)
print(lowercase)
【讨论】: