2017-09-29 1 views
0

나는이 파일의 텍스트 enter image description here스위프트, 파일 TXT 분리 문자열

을하고 난 다음과 같이 그것을 가지고 순서에 [[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"] 
] 

그래서 이 작업을 수행했습니다 :

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"], 
[""] 
] 

뭔가가 이스케이프 시퀀스에 오류입니다.

+0

오히려 그늘진보다 실제 오류를 기입하십시오 _ ". 뭔가 이스케이프 시퀀스 오류입니다"_ –

+0

나는 그것을 게시 나 오류가 발생하지 않습니다, 그냥 원하지 않는 뭔가. 첫 번째 배열을 원한다. 기계적 기억; 내가 마지막으로 쓴 배열을 얻습니다. –

답변

1

구분 기호의 순서가 잘못되었습니다. 당신이 원하는 것은 첫 번째 (\n\n으로) 단락에 의해 파일의 내용을 분리 로하고 다음 \n)로 (라인에 의해 각 단락을 구분 :

let text = "line1\nline2\n\nline3\nline4" 
let separated = text.components(separatedBy: "\n\n") 
    .map { $0.components(separatedBy: "\n") } 

print(separated) // [["line1", "line2"], ["line3", "line4"]] 

또 다른 옵션은 라인의 배열로 파일을 분할하고, 다음 빈 줄에 배열을 분할 :.!

let separated = text.components(separatedBy: "\n") 
     .split(separator: "") 
     .map(Array.init) // transform slices to proper arrays