gpt4 book ai didi

arrays - Swift 5 将文本文件读入 Int/Doubles 的二维数组

转载 作者:行者123 更新时间:2023-11-30 10:27:52 25 4
gpt4 key购买 nike

我希望这对小组来说不是一个太简单的问题。我正在自学 Swift,但我真的很难找到一种方法来将包含 Int 和 Double 值混合的 CSV 文本文件读取到一个 2d 数组中,该数组位于一个类中,其中数组中的每一行代表一行从输入文件。我已成功加载一维字符串数组,每个元素对应于 CSV 文件中的一行文本。不过,我想通过直接从输入文件到二维小数数组来节省时间。

最佳答案

读入数据。将文本分成行。将行分成标记。将每个标记转换为 Int,如果失败,则转换为 Double。

我假设您知道如何读取文件,因此这里是一个带有静态 CSV 字符串的示例:

let text = """
1,2,3.0
4,5.0,6,z
"""

enum CustomError: Error {
case notAnItOrADouble(String)
}

do {
let numberRows = try text
.split(separator: "\n")
.map { line in
try line.split(separator: ",").map { substring -> Any in
let token = String(substring)
guard let value: Any = Int(token) ?? Double(token) else {
throw CustomError.notAnItOrADouble(token)
}
return value
}
}

numberRows.forEach { row in
row.forEach { number in
print("\(number) is \(type(of: number))")
}
}
} catch (let error) {
print(error)
}

输出:

1 is Int
2 is Int
3.0 is Double
4 is Int
5.0 is Double
6 is Int

尝试输入一个字符串而不是 int 或 double,您会发现您收到的错误是第一个不可解析的标记。

关于arrays - Swift 5 将文本文件读入 Int/Doubles 的二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59758407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com