首页 > 解决方案 > 将字符串添加到数组

问题描述

当我从 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
}

标签: arraysswift

解决方案


如果元素数量小于 6,您当前的代码将崩溃,请替换

if columns[5] == "" {
    continue
} else {
    result.append(columns)
}

if columns.count > 5 && columns.last != "" {
  result.append(columns)
}

推荐阅读