You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中如何获取数组内每个字符串的长度?

嘿,在Swift里搞定这个需求超级简单,我给你分享几个常用的方法,结合你给的示例数组["a", "a2", "b", "a2", "d"]来演示:

1. 最简洁:用map直接生成长度数组

如果你只需要把所有字符串的长度收集成一个新数组,map是最省心的选择——它会遍历原数组的每个元素,把每个字符串转换成对应的长度值:

let strArray = ["a", "a2", "b", "a2", "d"]
let lengthArray = strArray.map { $0.count }
print(lengthArray) // 输出: [1, 2, 1, 2, 1]

这里的$0代表当前遍历到的字符串,String.count就是它的字符长度(注意:这是Unicode字符的数量,比如单个emoji的count是1,不是字节数)。

2. 遍历数组逐个处理(适合需要额外操作的场景)

如果你需要在获取长度的同时做一些额外动作——比如打印每个字符串和它的长度,或者根据长度过滤元素——用for-in循环会更灵活:

let strArray = ["a", "a2", "b", "a2", "d"]
for str in strArray {
    let length = str.count
    print("字符串\"\(str)\"的长度是:\(length)")
}

运行后会输出:

字符串"a"的长度是:1
字符串"a2"的长度是:2
字符串"b"的长度是:1
字符串"a2"的长度是:2
字符串"d"的长度是:1
3. 同时获取索引和长度

要是你还需要知道每个元素在原数组里的位置,可以搭配enumerated()来遍历,它会返回每个元素的索引和值:

let strArray = ["a", "a2", "b", "a2", "d"]
for (index, str) in strArray.enumerated() {
    print("索引\(index)的字符串\"\(str)\"长度为:\(str.count)")
}

输出结果:

索引0的字符串"a"长度为:1
索引1的字符串"a2"长度为:2
索引2的字符串"b"长度为:1
索引3的字符串"a2"长度为:2
索引4的字符串"d"长度为:1
小补充:字符长度 vs 字节数

最后提个小细节:String.count返回的是Unicode字符的数量,如果你的需求是获取字符串的UTF-8字节数,可以这样写:

let exampleStr = "😀"
let utf8ByteCount = exampleStr.utf8.count // 输出4,因为这个emoji占4个UTF-8字节

不过从你的示例来看,应该只需要普通的字符长度,用count就完全够用啦。

内容的提问来源于stack exchange,提问作者Rupshikha anand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:54:03