ios - 使用 Swift 跟踪字符串中的特定数据
问题描述
总的来说,我对编码还是很陌生,而且我遇到了一个 Swift 练习的问题。
如何跟踪字符串“12221231221”中出现的次数 1 (var numberOfSteps) 和次数 2 (var numberOfHeartBeats)?
我得到了以下提示,但不确定 for-in 循环如何应用:
let activityData = "12221231221"
var numberOfSteps = 0
var numberOfHeartBeats = 0
for character in activityData{
print(character)
}
解决方案
在循环中,您可以检查当前字符是什么,然后相应地递增变量:
let activityData = "12221231221"
var numberOfSteps = 0
var numberOfHeartBeats = 0
for character in activityData{
if character == "1" {
numberOfSteps += 1
} else if character == "2" {
numberOfHeartBeats += 1
}
}
这是另一种更实用的方法:
let dict = Dictionary(grouping: activityData, by: { $0 }).mapValues { $0.count }
dict["1"]
是numberOfSteps
和dict["2"]
是numberOfHeartBeats
。
推荐阅读
- ocaml - 整体运行语句时出错,但在顶层逐个运行时工作
- java - 将 ComboPooledDataSource 与 Postgres 一起使用时,c3p0 抛出 com.mchange.v2.resourcepool.CannotAcquireResourceException
- sql - WITH 子句:仅包括每个表中的某些值
- android - 我无法播放 m3u8 格式的视频
- laravel - 在创建时验证 laravel 中的重叠日期
- oracle-coherence - 连贯性错误我在 oracle 连贯性中遇到错误,例如“无法将类型 -28 转换为集合类型
- docker - 在 Docker 容器中访问 Redis CLI
- python - 使用 openpyxl 对 XLSX 工作簿中的选项卡进行排序
- google-translate - 谷歌翻译小部件是免费或付费功能 googleTranslateElementInit()
- r - 控制 R igraph 中节点和边的绘制顺序?