开发中经常会用到替换,去除空格,替换空格,Swift提供了方法,当然我们也可以自己实现空格替换成%20,Swift原生方法:
var str="My name is FlyElephant"
str=str.stringByReplacingOccurrencesOfString(" ", withString: "%20")
我们也可以自己实现替换:
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从后向前移动
data[endIndex--]=data[moveIndex]
}
moveIndex--
}
return true
}
测试代码:
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)