開(kāi)發(fā)中經(jīng)常會(huì)用到替換,去除空格,替換空格,Swift提供了方法,當(dāng)然我們也可以自己實(shí)現(xiàn)空格替換成%20,Swift原生方法:
var str="My name is FlyElephant"
str=str.stringByReplacingOccurrencesOfString(" ", withString: "%20")
我們也可以自己實(shí)現(xiàn)替換:
func replaceSpace(inout data: Array<AnyObject>,originalContent:String)->Bool{
if data.count==0 {
return false
}
var spaceCount=0
for content in data {
if content as? String == " " {
spaceCount=spaceCount+1
}
}
let newLength=originalContent.characters.count+spaceCount*2
var endIndex=newLength-1
var moveIndex=originalContent.characters.count-1
while moveIndex>=0 && endIndex>moveIndex {
//遇到空格替換
if data[moveIndex] as? String==" " {
data[endIndex--]="0"
data[endIndex--]="2"
data[endIndex--]="%"
}else{
//非空格moveIndex從后向前移動(dòng)
data[endIndex--]=data[moveIndex]
}
moveIndex--
}
return true
}
測(cè)試代碼:
var arr=[AnyObject](count: 100, repeatedValue:NSNull())
var arrContent="My name is FlyElephant"
for index in 0...arrContent.characters.count-1 {
var chIndex=arrContent.characters.startIndex.advancedBy(index)
arr[index] = String(arrContent.characters[chIndex])
}
print("FlyElephant")
var replace=ReplaceSpace()
var isReplace=replace.replaceSpace(&arr, originalContent: arrContent)