zoukankan      html  css  js  c++  java
  • Swift2.0 中的String(二):基本操作

    Swift中的字符串,第二篇,基本操作。其他的几篇传送门(GitHub打不开链接的同学请自行把地址github改成gitcafe,或者直接去归档里找:-P):

    首先,我们要记得使用字符串最常用的两个参数:下标(Index)和范围(Range),几乎所有API都要用到它们

    let offset = str.startIndex.advancedBy(2)// offset: 3rd char
    let range  = Range(start: str.startIndex.advancedBy(3), end: str.endIndex.advancedBy(-2))// range: 3..<6, "345"
    

    强制类型转换

    let n      = Int(str)!
    String("the number is (n)")
    String(format:"%.2f,  %i", 9.1, 304)
    

    内容反转

    String(str.characters.reverse())
    

    删除和部分删除

    str.removeRange(range)
    str.removeAtIndex(offset)
    String(str.characters.dropFirst())
    String(str.characters.dropFirst(3))
    String(str.characters.dropLast())
    String(str.characters.dropLast(3))
    //以上对character的操作不改变原来的值!
    // 删除头尾空白字符
    "     I love you ".stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())
    // 删除头尾字符集
    " I love you, too!".stringByTrimmingCharactersInSet(NSCharacterSet(charactersInString: ",. !"))
    //清空
    str.removeAll()
    

    获取固定位置的子串

    str.substringToIndex(offset)
    str.substringFromIndex(offset)
    str.substringWithRange(range)
    str[range]
    

    分割

    st         = "<123, test2,???>   <测试: 数据  .>"
    // 用固定字符分割
    str.componentsSeparatedByString(" ")
    // 用固定字符集分割
    str.componentsSeparatedByCharactersInSet(NSCharacterSet(charactersInString: ", ."))
    

    过滤/查找替换

    使用替换字符串的API,让替换的目标字符串为空即为过滤

    // 替换固定位置子串
    str.stringByReplacingCharactersInRange(range, withString: "!!!")
    // 查找所有匹配并替换/过滤
    str.stringByReplacingOccurrencesOfString("???", withString: "~")
    str.stringByReplacingOccurrencesOfString(" ", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
    // 过滤字符集合(分割后合并)
    let arr    = str.componentsSeparatedByCharactersInSet(NSCharacterSet(charactersInString:"-<>"))
    arr.joinWithSeparator("")
    

    合并/拼接

    s1 + s2 + s3
    str.appendContentsOf("123")
    str.stringByAppendingString("000")         //不改变原值!
    str.stringByAppendingFormat("- num %d ", 100)      //不改变原值!
    // 以固定字符串为分隔符拼接
    [str, str, str].joinWithSeparator("
    ")
    

    插入

    str.insert(" ", atIndex: offset)
    str.insertContentsOf(" hello".characters, at: offset)
    str.replaceRange(Range( start:offset, end: offset ), with: "???OK!!!")
    

    判断前缀或后缀

    str.hasPrefix("01")
    str.hasSuffix("567")
    

    比较字符串

    s1.characters.elementsEqual(s2.characters)
    str.characters.elementsEqual("01234567".characters)
    s1 == s2
    "111" < "222"
    

    匹配字符串

    str.rangeOfString("efg")
    str.rangeOfString("efg", options: NSStringCompareOptions.CaseInsensitiveSearch, range: nil)
    

    固定位置的部分替换

    str.replaceRange(range, with: "test_for_replace")
    str.stringByReplacingCharactersInRange(range, withString: "哈哈:smile:Tes
    t")
    
  • 相关阅读:
    es使用java的api操作
    vip视频解析保存
    springboot项目中常遇到的问题-初学者最容易犯的错
    spring中使用@value注入static静态变量
    Hardware assisted virtualization and data execution protection must be enabled in the BIOS. See https://docs.docker.com/docker-for-windows/troubleshoot/#virtualization
    rabbitmq的简单使用
    微信朋友圈点赞功能
    SQLServer删除重复数据保留一条
    公司企业的网站备案工信部短信验证失败怎么办?证件不是营业执照,而是身份证号
    全部常用邮件端口25、109、110、143、465、995、993、994
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/6010840.html
Copyright © 2011-2022 走看看