Arrays 如何在Swift中将包含双值的文本文件写入数组
有人知道在Swift中如何将文本文件的内容读入数组吗? 这里的数据类型转换有问题,到目前为止,我找不到一种方法将包含双值的文件保存到数组中。此外,这些值仅由换行符分隔。因此,数组的字段必须是单行。如何编写能够读取完整文本文件的自动查询 文本文件中的数据集如下所示:Arrays 如何在Swift中将包含双值的文本文件写入数组,arrays,swift,txt,Arrays,Swift,Txt,有人知道在Swift中如何将文本文件的内容读入数组吗? 这里的数据类型转换有问题,到目前为止,我找不到一种方法将包含双值的文件保存到数组中。此外,这些值仅由换行符分隔。因此,数组的字段必须是单行。如何编写能够读取完整文本文件的自动查询 文本文件中的数据集如下所示: 0.123123 0.123232 0.344564 -0.123213 ... 等等 您可以在分隔符为新行的位置拆分字符串,然后使用compactmap将子字符串初始化为双精度: let url = FileManager.def
- 0.123123
- 0.123232
- 0.344564
- -0.123213 ... 等等
let url = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
.appendingPathComponent("file.txt")
// or if the file is located in you bundle directory
// let url = Bundle.main.url(forResource: "file", withExtension: "txt")!
do {
let txt = try String(contentsOf: url)
let numbers = txt.split(whereSeparator: \.isNewline)
.compactMap(Double.init) // [0.123123, 0.123232, 0.344564, -0.123213]
} catch {
print(error)
}
这假设数字前后没有空格。如果您需要确保双初始值设定项在这些情况下不会失败,您可以在初始化数字之前对其进行修剪:
let numbers = txt.split(whereSeparator: \.isNewline)
.map { $0.trimmingCharacters(in: .whitespaces) }
.compactMap(Double.init)
检查这是否有帮助:这是否回答了您的问题?很抱歉,这两种情况不涉及数据类型问题。在这些情况下,文本文件被划分为字符串。不过,我需要双份的。