如何将包含双精度值的文本文件写入 Swift 中的数组
How to write a text file consisting of double values into an array in Swift
有谁知道在 Swift 中如何将文本文件的内容读入数组?
我在这里遇到数据类型转换问题,到目前为止我找不到将包含双精度值的文件保存到数组中的方法。此外,这些值仅由换行符分隔。所以数组的一个字段必须是一行。如何编写可以读取完整文本文件的自动查询?
文本文件中的数据集如下所示:
- 0.123123
- 0.123232
- 0.344564
- -0.123213
...等等
您可以拆分您的字符串,其中分隔符是新行,然后 compactmap 将子字符串初始化为 Double:
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)
}
这假设您的数字前后没有空格。如果你需要确保双初始化器在这些情况下不会失败,你可以 trim 在初始化你的数字之前:
let numbers = txt.split(whereSeparator: \.isNewline)
.map { [=11=].trimmingCharacters(in: .whitespaces) }
.compactMap(Double.init)
有谁知道在 Swift 中如何将文本文件的内容读入数组? 我在这里遇到数据类型转换问题,到目前为止我找不到将包含双精度值的文件保存到数组中的方法。此外,这些值仅由换行符分隔。所以数组的一个字段必须是一行。如何编写可以读取完整文本文件的自动查询?
文本文件中的数据集如下所示:
- 0.123123
- 0.123232
- 0.344564
- -0.123213 ...等等
您可以拆分您的字符串,其中分隔符是新行,然后 compactmap 将子字符串初始化为 Double:
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)
}
这假设您的数字前后没有空格。如果你需要确保双初始化器在这些情况下不会失败,你可以 trim 在初始化你的数字之前:
let numbers = txt.split(whereSeparator: \.isNewline)
.map { [=11=].trimmingCharacters(in: .whitespaces) }
.compactMap(Double.init)