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

如何将LinkedList描述字符串转换为多位数数字数组?

解决方案

你的问题出在compactMap{$0.wholeNumberValue}是遍历字符串的每个字符,所以80会被拆成'8'和'0'两个独立字符,最终得到单个数字的数组。要提取完整的数字,需要先按LinkedList的description格式分割字符串,再转换:

方法一:替换前缀+按分隔符分割

var list: LinkedList = LinkedList()
list.append(value: 1)
list.append(value: 80)
list.append(value: 3)
list.append(value: 7)

// 处理description字符串
let processedNumbers = list.description
    // 移除开头的[HEAD] 前缀
    .replacingOccurrences(of: "[HEAD] ", with: "")
    // 按" -> "分割成单个数字的字符串
    .components(separatedBy: " -> ")
    // 转换为Int数组(自动过滤无效内容)
    .compactMap(Int.init)

print(processedNumbers) // 输出 [1, 80, 3, 7]

方法二:按空格分割+过滤无效元素

如果担心前缀格式可能变化,可以用更通用的方式:

let processedNumbers = list.description
    // 按空格分割所有元素
    .split(separator: " ")
    // 去掉第一个元素[HEAD]
    .dropFirst()
    // 过滤掉箭头符号->
    .filter { $0 != "->" }
    // 转换为Int数组
    .compactMap { Int($0) }

两种方法都能准确提取出description中的完整数字,得到你期望的数组。

内容的提问来源于stack exchange,提问作者Amir Abravesh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 12:10:32