Удалить пустые массивы? Swift 5 - PullRequest
0 голосов
/ 30 апреля 2020

Здравствуйте, я использую следующее:

let str = TextField.text!
let array = str.components(separatedBy: " ")

print(array)
print(array.count)

Ввод TextField может быть: «ОДИН ДВА ТРИ»

Что будет печатать
[«ОДИН», «ДВА», «ТРИ»] 3

Но иногда ввод текста происходит в виде: «ОДИН ДВА ТРИ» или «ОДИН ДВА ТРИ» или «ОДИН ДВА ТРИ»

Как Могу ли я получить все компоненты без пустых «» и все еще иметь счет 3. Вместо того, чтобы лишние пробелы учитывают дополнительные компоненты?

Или как я могу создать массив из строки, содержащей отдельные слова, независимо от того, как они устарели. Мне нужны только отдельные слова.

Ответы [ 2 ]

0 голосов
/ 30 апреля 2020

Вместо этого можно использовать split(separator:):

let text = " ONE   TWO THREE  "

print(text.components(separatedBy: " "))
// ["", "ONE", "", "", "TWO", "THREE", "", ""]

print(text.split(separator: " ").map(String.init))
// ["ONE", "TWO", "THREE"]

Этот метод имеет параметр omittingEmptySubsequences:, который по умолчанию равен true. Он возвращает массив Substring с, который может быть сопоставлен с «реальным» String с, если необходимо.

0 голосов
/ 30 апреля 2020

Просто сделайте буквально то, что вы просите

var array = str.components(separatedBy: " ")
array.removeAll{$0.isEmpty}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...