2016-10-08 2 views
1

Почему я могу это сделатьSwift строка лексического анализа

let dataArray = data.characters.split{$0 == ";"}.map(String.init) 

и это

let dataArray = self.dataIn.characters.split{$0 == "\r\n"}.map(String.init) 

, но я не могу это сделать?

let dataArray = data.characters.split{$0 == "; "}.map(String.init) 

Я хочу, чтобы искать строку

"; " 

ответ

2

Таким образом, вы раскалывают на персонажей здесь так что ваши «$0» является Character типа. Это означает, что он никогда не может быть равен несимметричному объекту. "; " - это строка, так как это не один символ.

Это, как говорится, если вы только пытаетесь разделить строку на "; ", вы должны просто использовать струны components(separatedBy:):

let dataArray = data.components(separatedBy: "; ") 
+0

отлично. Спасибо. Когда я изначально googled это, и даже теперь я получаю решение characters.split в верхней части моего поиска. Кажется, он работает с «\ r \ n», поэтому я немного смущен. – lusher00

+0

'\ r \ n' на самом деле соответствует только новым символам строки, поэтому он по-прежнему остается одним символом. Например, '\ n \ n' не будет работать, так как это два символа. – Firo

Смежные вопросы