Swift-字符串截取、替换、插入

Swift中关于字符串的截取与OC还是有很大的区别的,要说字符串的截取,就要先说下“范围”,OC中使用的是NSRange函数来指示一个起始位置和长度,而Swift中的范围使用起来就方便得多,有两种形式:

  1. 1...5表示闭区间[1,5],也就是从1到5的范围。
  2. 1..<5表示闭区间[1,5),也就是从1到4的范围。

例如:

        for index in 1...5 {
            print(index)
        }

一、字符串拼接

Swift字符串拼接较于OC要简便一些,例如:

        let string1 = "Swift很不错,"
        let string2 = "你觉得呢?"
        let string3 = string1 + string2
        print(string3)

        //字符串相等可以直接用 == 来判断
        if string1 == string2 {
            print("两个相等")
        }


二、字符串截取

Swift在截取字符串时,是由String.Index类型来索引的,这个其实是字符串的字素位,我们可以用这个字素位来截取、插入、删除String中的元素。String是支持下表操作的,对字符串进行操作时,首先要指定起始是从头部开始,还是从尾部开始;头部开始调用startIndex,尾部开始调用endIndex;注意:从尾部开始时,长度要为负值。例如:

        let str = "Hello";
               
        //截取某字符串的前3个字符串
        let sub1 = str.prefix(3)
        //截取某字符串的后3个字符串
        let sub2 = str.suffix(3)
        
        //通过获取字素位来截取字符串
        let index1 = str.index(str.endIndex, offsetBy: -3)
        let sub3 = str[index1..<str.endIndex]
        
        //截取字符串的第1个字符到第4个字符范围的字符串
        let index2 = str.index(str.startIndex, offsetBy: 1)
        let index3 = str.index(str.startIndex, offsetBy: 3)
        let sub4 = str[index2...index3]
        
        //只截取字符串的一个字素,返回值是Character类型
        let character = str[str.index(str.startIndex, offsetBy: 3, limitedBy: str.endIndex)!]
        print("character = \(String(character))")
        
        //返回一个可选类型的范围:Range<String.Index>
        //lowerBound不包含e    upperBound包含e
        let range = str.range(of: "e")!       
        let s = str[str.startIndex..<range.lowerBound]

二、字符串删除/替换/插入某部分

删除和替换字符串的某部都需要用到范围,例如:

        var str = "Hello Swift"
        let start = str.index(str.startIndex, offsetBy: 1)
        let end = str.index(str.startIndex, offsetBy: 3)
        //删除一段内容
        str.removeSubrange(start...end)
        //删除单个字素,Swift中单个字素是Charater类型的,删除单个字素的方法是remove,无论是删除单个字素还是删除整段,方法的参数类型都是String.Index
        str.remove(at: startIndex)
        //替换一段内容,两个参数:替换的范围和用来替换的内容
        str.replaceSubrange(start...end, with: "new")
        //替换一段内容,有返回值,两个参数:要替换的内容和用来替换的内容
        let reStr = h.replacingOccurrences(of: "Hello", with: "H")
        //插入一段内容,两个参数:插入的起点和用来插入的内容
        str.insert(contentsOf: "SWIFT", at: start)
        //插入一个字素,注意:只能是一个字素
        str.insert("s", at: start)
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值