arrays - 在 Swift 中更新数组中的字符串数量

标签 arrays swift string for-loop

假设我有一个字符串数组:

var array: [String] = ["a", "a", "b", "c", "c", "c", "d", "d"]

在数组中,我有 4 次 a、1 次 b、3 次 c 和 2 次 d.

我想将 a 的值从 4 更新为 7,将 c 的值从 3 更新为 1。

我希望单个字符串在数组中的最大次数最多为 10 次。

我试着用这个来做:

    for _ in 0..<10 {
        if array.contains("a") {
            if let index = array.index(of: "a") {
                array.remove(at: index)
            }
        }
    }

    for _ in 0..<7 {
        array += ["a"]
    }

首先,在一个运行 10 次的循环中,我每次都检查数组是否仍包含 a,如果是,则将其删除。之后,我运行一个循环 7 次,这个循环每次都会向数组中添加另一个 a 值,直到数组中应该有 7 个 a 为止。

这不是真正发生的事情。真正发生的是它将数组中的所有对象替换为 a,并且肯定运行 更多 超过 7 次。

我能做些什么来解决它?

最佳答案

我建议使用字典。当前的这种方法并不是很有效。

var dict = [
    "a": 4,
    "b": 8
]

这样您就可以更新每个字母的值,而不必在数组中重复它们。要设置字典值,您可以使用下标:

dict["a"] = 2

这似乎更适合您的尝试。

关于arrays - 在 Swift 中更新数组中的字符串数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44099592/

相关文章:

swift - 如何向 NSMutableData.appendBytes 传递一个不同于零的数组索引位置

ios - 如何使用swift将两个加在一起的变量转换为标签文本

java - 为什么有些条目会被替换?

c - 当字符串为 char * 时,strtok_s 使程序崩溃

c - 如何通过在c中推进内存地址来存储结果

javascript - 如何以 json 或其他格式存储 javascript 混合数组/对象并保留结构?

java - 从二维数组中删除/删除重复项

c++ - 如何在多个函数中使用同一个多维数组?

ios - 有人可以帮我删除表格 View 单元格吗?

android - 为什么我们在string.xml中指定字符串