swift给定一个字符串,统计字符串中大小写字母、数字、空格及其他未识别类型字符的个数。
时间: 2024-10-11 11:07:57 浏览: 18
在Swift中,你可以使用`Characters`枚举以及一些简单的计数操作来完成这个任务。首先,创建四个变量分别用于存储四种字符类型的计数:
```swift
var lowercaseCount = 0
var uppercaseCount = 0
var digitCount = 0
var spaceCount = 0
var otherCount = 0
// 假设输入的字符串为str
for char in str {
switch char {
case .lowercaseLetter:
lowercaseCount += 1
case .uppercaseLetter:
uppercaseCount += 1
case .decimalNumber:
digitCount += 1
case .whitespace:
spaceCount += 1
default:
// 如果不是已知的字符类型,则认为是其他字符
otherCount += 1
}
}
```
现在,这些变量分别记录了小写字母、大写字母、数字、空格和其他字符的数量。例如,`lowercaseCount`就是字符串中小写字母的数量。
相关问题
swift给定一个字符串,统计字符串中大小写字母、数字、空格及其他未识别类型字符个数
在Swift中,你可以使用`Scanner`或`Collections`框架来统计一个字符串中各个类型的字符数。这里是一个简单的示例:
```swift
import Foundation
func countCharactersInString(_ input: String) -> [CharacterCount: Int] {
var characterCounts = ["lowercase": 0, "uppercase": 0, "digits": 0, "spaces": 0, "other": 0]
let scanner = Scanner(string: input)
while scanner.scanCharacters(from: .alphanumerics) {
if Character.isLowercase(scanner.scanLocation == 0) {
characterCounts["lowercase"] += 1
} else if Character.isUppercase(scanner.scanLocation == 0) {
characterCounts["uppercase"] += 1
} else if scanner.string[scanner.location - 1].isNumber {
characterCounts["digits"] += 1
} else if scanner.string[scanner.location - 1] == " " {
characterCounts["spaces"] += 1
} else {
characterCounts["other"] += 1
}
scanner.scanLocation++
}
return characterCounts
}
let inputString = "Hello World! 123"
let result = countCharactersInString(inputString)
print("Character counts:")
for (category, count) in result {
print("\(category): \(count)")
}
swift一个字符串分割并存为多个字符串
你可以使用 Swift 中的 split 函数来将一个字符串分割为多个字符串。例如:
```
let str = "Hello,World"
let array = str.split(separator: ",")
print(array) // ["Hello", "World"]
```
这个例子中,我们通过 `split` 函数将 `str` 字符串按照 `,` 分割成了两个字符串,分别存储到了 `array` 数组中。