我正在读取包含以下格式数据的文件:
1990 3 6.4 1.0 9
1991 1 5.3 12.0 10
所以得到的数组是
["1990"][""][""][""]["3"]....
当我只需要
["1991"]["3"]["6.4"]....
我想把这些信息提取到一个数组或结构中。
但当我试图:

let x = string.components(seperatedBy: .whitespaces)

它创建了一个不需要空白的数组。
数组应该只包含有用的值。
谢谢

最佳答案

将多个连续空白转换为一个空白。

let string = """
1990    3     6.4    1.0    9
1991    1     5.3   12.0   10
"""
let components = string.replacingOccurrences(of: "\\s+", with: " ", options: .regularExpression)
    .components(separatedBy: .whitespaces)

使用Scanner
let scanner = Scanner(string: string)
var result: [String] = []
var value: NSString? = nil
while scanner.scanUpToCharacters(from: .whitespacesAndNewlines, into: &value) {
    result.append(value as! String)
}

正在枚举单词。
var words: [String] = []
string.enumerateSubstrings(in: string.startIndex..<string.endIndex, options: .byWords) {word, _, _, _ in
    words.append(word!)
}

关于arrays - Swift字符串分隔,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49020937/

10-09 09:00