Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Split string by two symbols in Swift

Tags:

string

swift

I would like to split the string by two symbols in Swift. So after string "df57g5df7g" I would like to obtain an Array ["df","57","g5","df","7g"]. Is it possible to force iterator

for i in word.characters {
 print(i)
}

to jump by two symbols, and get acsess to the next symbol inside the loop?

like image 729
Филипп Цветков Avatar asked Feb 12 '26 11:02

Филипп Цветков


2 Answers

A simple while loop:

let str = "df57g5df7g"

var startIndex = str.startIndex
var result = [String]()

repeat {
    let endIndex = startIndex.advancedBy(2, limit: str.endIndex)
    result.append(str[startIndex..<endIndex])

    startIndex = endIndex
} while startIndex < str.endIndex

print(result)

Or something more Swifty:

let result = 0.stride(to: str.characters.count, by: 2).map { i -> String in
    let startIndex = str.startIndex.advancedBy(i)
    let endIndex   = startIndex.advancedBy(2, limit: str.endIndex)
    return str[startIndex..<endIndex]
}
like image 125
Code Different Avatar answered Feb 16 '26 06:02

Code Different


This might not be the slickest solution, but it works:

var word = "df57g5df7g"

var pairsArray = [String]()

while word.characters.count > 1 {
    let firstCharacter = word.removeAtIndex(word.startIndex)
    let secondCharacter = word.removeAtIndex(word.startIndex)
    pairsArray.append("\(firstCharacter)\(secondCharacter)")
}

print(pairsArray)

The result is:

["df", "57", "g5", "df", "7g"]
like image 22
Westside Avatar answered Feb 16 '26 07:02

Westside