我正在读取包含以下格式数据的文件: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/