Java api之indexOf方法的swift实现
由于最近开发swift项目要用到类似于java的string.indexOf(substring,int)功能,这个方法就是从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。 因为swift没有提供相关的函数功能,故自己扩展了String类的方法。仅仅初步进行了功能测试,还没测试性能。仅供参考。如有更好的方法,还请赐教。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 extension String{
func substring(_ i:Int,_ end:Int)->String{
var result=""
let str=self
if i<str.count && i>=str.startIndex.encodedOffset {
let startIndex = str.index(str.startIndex, offsetBy:i)//获取d的索引
if end<=str.count {
let endIndex = str.index(startIndex, offsetBy:end-i)//从d的索引开始往后两个,即获取f的索引
if endIndex>startIndex {
result=String(str[startIndex..<endIndex])
}
}
}
return result
}
func indexOf(_ str:String,_ id:Int)->Int{
let strObj=self
for i in 0 ..< strObj.count {
if strObj.substring(i+id, i+id+str.count) == str {
return i+id
}
}
return -1
}
}
嗨、骚年、快来消灭0回复。