Подтвердить что ты не робот

Быстрый эквивалент Array.componentsJoinedByString?

В Objective-C мы можем вызвать componentsJoinedByString для создания строки с каждым элементом массива, разделенным поставляемой строкой. В то время как Swift имеет метод componentsSeparatedByString для String, в Array нет инверсии:

'Array<String>' does not have a member named 'componentsJoinedByString'

Что такое инверсия componentsSeparatedByString в Swift?

4b9b3361

Ответ 1

Swift 3.0:

Аналогично Swift 2.0, но переименование API переименовало joinWithSeparator в joined(separator:).

let joinedString = ["1", "2", "3", "4", "5"].joined(separator: ", ")

// joinedString: String = "1, 2, 3, 4, 5" 

Подробнее см. Sequence.join(separator:).

Swift 2.0:

Вы можете использовать метод joinWithSeparator для SequenceType для объединения массива строк с разделителем строк.

let joinedString = ["1", "2", "3", "4", "5"].joinWithSeparator(", ")

// joinedString: String = "1, 2, 3, 4, 5" 

Подробнее см. SequenceType.joinWithSeparator(_:).

Swift 1.0:

Вы можете использовать стандартную библиотечную функцию join на String, чтобы присоединиться к массиву строк со строкой.

let joinedString = ", ".join(["1", "2", "3", "4", "5"])

// joinedString: String = "1, 2, 3, 4, 5" 

Или, если хотите, вы можете использовать глобальную стандартную библиотечную функцию:

let joinedString = join(", ", ["1", "2", "3", "4", "5"])

// joinedString: String = "1, 2, 3, 4, 5"

Ответ 2

КомпонентыJoinedByString все еще доступны для NSArray, но не для Swift Arrays. Вы можете моститься туда и обратно, хотя.

var nsarr = ["a", "b", "c"] as NSArray
var str = nsarr.componentsJoinedByString(",")