2017-02-09 12 views
-4

У меня есть строка, как показано ниже,Разделение строки на подстроки с компонентом, разделенных строки быстрой

newString : String = "12","34","56","78","910","1112","1314","1516","1718","1920","2122","2324","2526","2729". пусть

я хочу, чтобы отделить строку с "4 string each" строки, например, "12","34","56","78" and "910","1112","1314","1516" и так далее.

Можем ли мы достичь этого, используя диапазон или что-то еще?

Примечание: - NewString это не статические данные, которые он придет из WebService

+0

вы можете seprate его, а затем объединить его снова на каждые 4 строковые объекты. –

+1

@PatelJigar было бы здорово, если бы вы могли предоставить любой пример –

+0

использовать 'joinWithSeparator' и' componentsSeparatedByString' –

ответ

2

Вы можете попробовать подобным образом, сначала создать массив из String, затем сделать из него массив chunk, а затем присоединиться к строке из массива.

let newString = "1,2,3,4,5,6,7,8,9,10,11,12" 
let array = newString.components(separatedBy: ",") // ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"] 
let chunkSize = 4 
let chunksArray = stride(from: 0, to: array.count, by: chunkSize).map { 
    Array(array[$0..<min($0 + chunkSize, array.count)]) 
} 
let subArray = chunksArray.map { $0.joined(separator: ",") } 
// ["1,2,3,4", "5,6,7,8", "9,10,11,12"] 

Редактировать: вы можете объединить последние два действия с одиночными, как этот путь.

let subArray = stride(from: 0, to: array.count, by: chunkSize).map { 
    array[$0..<min($0 + chunkSize, array.count)].joined(separator: ",") 
} 
// ["1,2,3,4", "5,6,7,8", "9,10,11,12"] 
+0

Большое спасибо Nirav D cheers, я пытался с chunksArray, но не смог найти решение для Swift 3 –

+1

Вы также можете сказать 'let subArray = stride (from: 0, to: array.count, by: chunkSize) .map {array [$ 0 .. Hamish

+0

@Hamish Thanx за предложение, отредактированный ответ для этого. –

0

можно разделить строку побочных , как: let strArr = newString.components(separatedBy: ","), затем разделить strArr на массивы, содержащие 4 элемента, и присоединиться каждый полученный массив, ,. Надеюсь это поможет. Удачи!

+0

, пожалуйста, напишите пример здесь –

+0

Если вам нужен весь код, проверьте ответ @ Nirav. –

0

Сначала приготовьте массив из строки:

let newString = "1,2,3,4,1234,1235,1236,1238,678,679"  
let newStringArray = newString.componentsSeparatedByString(",") 

Затем запустите цикл и добавить строку с помощью joinWithSeparator