Java api之indexOf方法的swift实现

7年前 (2018-03-09) fancyang IOS相关开发 0评论 已收录 4776℃

由于最近开发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回复。

000277;您的ip地址是18.97.9.174; 当前围观人数:1

隐私政策

橘花2支持在线更新了,点我下更新支持文档然后托给橘花,再点SSP面板右键更新