在Swift字符串的檢索中武鲁,有時(shí)候返回的可能是一個(gè)范圍,而不是一個(gè)具體的位置头滔。這就要用到Swift中Range的概念怖亭。我們對(duì)此來(lái)進(jìn)行詳解。
1坤检、字符串中檢索某個(gè)單詞方法:rangeOfString
var str = "Hello Apple.Hello Swift"
str.rangeOfString("Hello")//正向檢索兴猩;
str.rangeOfString("Hello", options: NSStringCompareOptions.BackwardsSearch)//反向檢索;
str.rangeOfString("swift")//大小寫(xiě)完全匹配
str.rangeOfString("swift", options: NSStringCompareOptions.CaseInsensitiveSearch)//忽略大小寫(xiě)
輸出結(jié)果:
結(jié)果分析:
可以看到rangeOfString的返回值是一個(gè)Range范圍早歇。如果為空倾芝,則返回nil。rangeOfString()方法有很多參數(shù)可選箭跳,大家可以試一試晨另。
2、從字符串指定范圍查找特定字符串
有時(shí)候根據(jù)我們的需求谱姓,并不是要從整個(gè)字符串長(zhǎng)度去檢索某個(gè)String借尿,可能是在一個(gè)范圍內(nèi)檢索,這里就要用到String.Index.
var str = "Hello Apple.Hello Swift"
let startIndex:String.Index = str.startIndex
let endIndex:String.Index = advance(startIndex, 10)
let strRange = Range<String.Index>(start:startIndex,end:endIndex)
str.rangeOfString("App", options: NSStringCompareOptions.CaseInsensitiveSearch, range: strRange)
輸出結(jié)果:
3屉来、截取子串
Swift支持截取從某位置開(kāi)始截取指定長(zhǎng)度的字符串路翻。
var str = "Hello Apple.Hello Swift"
var toIndex = advance(str.startIndex, 4)
str.substringToIndex(toIndex)//截取從開(kāi)始到第4個(gè)位置的字符串;
var fromIndex = advance(str.startIndex, 7)
str.substringFromIndex(fromIndex)//截取從第7個(gè)位置開(kāi)始到最后的字符串茄靠;
str.substringWithRange(Range<String.Index>(start: toIndex, end: fromIndex))//截取從第4個(gè)位置到第7個(gè)位置的字符串茂契;
輸出結(jié)果:
結(jié)果分析:
截取之后,原來(lái)的字符串不變慨绳。
4账嚎、插入字符:insert()
Swift可以在字符串的指定位置插入一個(gè)字符莫瞬。代碼如下:
var str = "Hello Apple.Hello Swift"
var insertIndex = advance(str.startIndex, 5)//在第5個(gè)位置處插入
str.insert("!", atIndex: insertIndex)//插入一個(gè)感嘆號(hào)
輸出結(jié)果:
5、移除字符:remove()
Swift可以在指定的字符串的某個(gè)位置刪除一個(gè)字符郭蕉。代碼如下:
var str = "Hello Apple.Hello Swift"
var insertIndex = advance(str.startIndex, 5)//在第5個(gè)位置處插入
str.insert("!", atIndex: insertIndex)//插入一個(gè)感嘆號(hào)
str.removeAtIndex(insertIndex)
str
輸出結(jié)果:
結(jié)果分析:
實(shí)驗(yàn)可知疼邀,insert()方法和removeAtIndex()方法會(huì)修改原來(lái)的字符串。
6召锈、替換字符串
在Swift中可以使用一個(gè)字符串替換另一個(gè)字符串旁振,具體代碼如下:
var str = "Hello Apple.Hello Swift" //把Hello替換為Hi
var replaceEndIndex = advance(str.startIndex, 5)//從開(kāi)始字符到第五個(gè)字符(5是開(kāi)區(qū)間)
str.stringByReplacingCharactersInRange(Range<String.Index>(start:str.startIndex,end:replaceEndIndex), withString: "hi")//替換為Hi
輸出結(jié)果:
轉(zhuǎn)自: