Swift,从文件txt中分离字符串
我有这个文件文本 我想把它放在一个Swift,从文件txt中分离字符串,swift,string,unicode-escapes,Swift,String,Unicode Escapes,我有这个文件文本 我想把它放在一个[[String]]中,这样就可以了: [ ["Quanto tempo dopo il risveglio fumi la prima sigaretta?", "Entro 5 minuti", "Da 6 a 30 minuti", "Da 31 a 60 minuti", "Dopo 60 minuti"], ["Ti riesce difficile non fumare nei luoghi dove è vietato?", "Sì", "No
[[String]]
中,这样就可以了:
[
["Quanto tempo dopo il risveglio fumi la prima sigaretta?", "Entro 5 minuti", "Da 6 a 30 minuti", "Da 31 a 60 minuti", "Dopo 60 minuti"],
["Ti riesce difficile non fumare nei luoghi dove è vietato?", "Sì", "No"],
["A quale sigaretta della giornata faresti più fatica a rinunciare?", "La prima del mattino", "Una delle successive"],
["Quante sigarette fumi al giorno?", "10 o meno", "Da 11 a 20", "Da 21 a 30", "31 o più"],
["Fumi più durante la prima ora dopo il risveglio che durante il resto della giornata?", "Sì", "No"]
]
[
["Quanto tempo dopo il risveglio fumi la prima sigaretta?"],
["Entro 5 minuti"],
["Da 6 a 30 minuti"],
["Da 31 a 60 minuti"],
["Dopo 60 minuti"],
[""],
["Ti riesce difficile non fumare nei luoghi dove è vietato?"],
["Sì"],
["No"],
[""],
["A quale sigaretta della giornata faresti più fatica a rinunciare?"],
["La prima del mattino"],
["Una delle successive"],
[""],
["Quante sigarette fumi al giorno?"],
["10 o meno"],
["Da 11 a 20"],
["Da 21 a 30"],
["31 o più"],
[""],
["Fumi più durante la prima ora dopo il risveglio che durante il resto della giornata?"],
["Sì"],
["No"],
[""]
]
所以我做到了:
let data = try! String(contentsOf: Bundle.main.url(forResource: "questions", withExtension: "txt")!, encoding:
.utf8)
.components(separatedBy: "\n")
.map { $0.components(separatedBy: "\n\n") }
print(data)
但我得到的是这样的[[String]]:
[
["Quanto tempo dopo il risveglio fumi la prima sigaretta?", "Entro 5 minuti", "Da 6 a 30 minuti", "Da 31 a 60 minuti", "Dopo 60 minuti"],
["Ti riesce difficile non fumare nei luoghi dove è vietato?", "Sì", "No"],
["A quale sigaretta della giornata faresti più fatica a rinunciare?", "La prima del mattino", "Una delle successive"],
["Quante sigarette fumi al giorno?", "10 o meno", "Da 11 a 20", "Da 21 a 30", "31 o più"],
["Fumi più durante la prima ora dopo il risveglio che durante il resto della giornata?", "Sì", "No"]
]
[
["Quanto tempo dopo il risveglio fumi la prima sigaretta?"],
["Entro 5 minuti"],
["Da 6 a 30 minuti"],
["Da 31 a 60 minuti"],
["Dopo 60 minuti"],
[""],
["Ti riesce difficile non fumare nei luoghi dove è vietato?"],
["Sì"],
["No"],
[""],
["A quale sigaretta della giornata faresti più fatica a rinunciare?"],
["La prima del mattino"],
["Una delle successive"],
[""],
["Quante sigarette fumi al giorno?"],
["10 o meno"],
["Da 11 a 20"],
["Da 21 a 30"],
["31 o più"],
[""],
["Fumi più durante la prima ora dopo il risveglio che durante il resto della giornata?"],
["Sì"],
["No"],
[""]
]
转义序列出错。您的分隔符顺序错误。你想要的是 首先用段落分隔文件内容(用
\n\n
),然后用行分隔每个段落(用\n)
:
另一个选项是将文件拆分为一个行数组,然后
然后在空行处拆分阵列:
let separated = text.components(separatedBy: "\n")
.split(separator: "")
.map(Array.init) // transform slices to proper arrays
请包括实际的错误,而不是一个阴暗的“某物是转义序列的错误”。我张贴了它!我没有错误,只是一些我不想要的东西。我想要我写的第一个数组;我得到了我写的最后一个数组