arrays - 将字符串添加到数组
问题描述
当我从 url 解析字符串时,我将每个新行附加到一个数组中。但是,如果该字段不为空,我只想添加。所以如果column[5]
是一个空字符串,我不会将它附加到数组中。例如我有两行字符串:
1,2,3,4,5,
1,2,3,4,5,6
我只想在有 6 个时追加
但是我if column[5] == ""
在行上得到一个索引超出范围错误
func readDataFromURL(url: String) -> String?{
if let url = URL(string: url)
{
do {
var contents = try String(contentsOf: url)
contents = contents.replacingOccurrences(of: "\r", with: "")
csv(data: contents)
return contents
} catch {
print("File error \(url)")
return nil
}
}
return nil
}
func csv(data: String) -> [[String]] {
var result: [[String]] = []
let rows = data.components(separatedBy: "\n")
for row in rows {
let columns = row.components(separatedBy: ",")
if columns[5] == "" {
continue
} else {
result.append(columns)
}
}
return result
}
解决方案
如果元素数量小于 6,您当前的代码将崩溃,请替换
if columns[5] == "" {
continue
} else {
result.append(columns)
}
和
if columns.count > 5 && columns.last != "" {
result.append(columns)
}
推荐阅读
- docker - 针对不同平台的 docker 镜像分析
- excel - 带通配符的 INDEX 和 MATCH 函数
- python - 当我收到来自条形码扫描仪的输入时,如何重定向到 Django 中的不同页面?
- azure-machine-learning-service - 如何深入了解 AzureML 端点部署的异常和日志记录
- python - 使用二进制数组选择矩阵的行
- python - [名称标记,标记表中的标记]的目的是什么
- django - 从多个文件导入 Django 设置
- ms-access - MS Access - 将行值转换为列值
- jquery - 使用 jquery 获取嵌套 JSON 的值
- node.js - 如何在没有时间戳的mongodb集合中保存文档