zoukankan      html  css  js  c++  java
  • Swift语言中 String 的一些操作方法

    整理自慕课网liuyubobobo老师在《玩儿转Swift》课程中的讲解,在此表示感谢!同时推荐这套视频课程http://www.imooc.com/learn/127

    var str = "Welcome to Play Swift! Step by step to learn Swift."

    // Range的用法和相关字符串的操作代码片段
     str.rangeOfString(“Step”)  // 字符串片段“Step”所处的字符范围 23..<27, 也即第22~26的范围位置

    另举一个更简单的例子:

    var s1 = "123456789"

    s1.rangeOfString("23”) ->>> {some “1..<3”}, 返回一个类型为NSRange的范围1~2,实际是2~3因为index以0开始计算。

    注意此处NSRange,苹果文档解释为

    A structure used to describe a portion of a series—such as characters in a string or objects in an NSArray object. 


    继续, 以下时反向查找,返回NSRange类型

    str.rangeOfString("Swift", options: NSStringCompareOptions.BackwardsSearch) ->>> {some 45..<50}

    此处options还可以为 CaseInsensitiveSearch,也即大小写不敏感的查找模式

    str.startIndex  ->>> 0
    str.endIndex   ->>> 51, 此处可理解为该字符串总长度为51,有一共51个字符

    let aRange = Range<String.Index>(start:str.startIndex, end:str.endIndex)

    以上常量aRange是一个NSRange类型的值, 也即是 0..<51, 表示变量str所指向的字符串的范围

    需要注意的是,在Java等语言中,数组和字符串下标index是Int类型,但在Swift,index下标是String.Index类型。

    let startIndex:String.Index = str.startIndex
    let endIndex:String.Index = advance(str.startIndex, 12) //设置后下标,由前下标后挪12位获得

    let searchRange = Range<String.Index>(start:startIndex, end:endIndex) //设置一个range,其实就是0..<10

    str.rangeOfString("to", options: NSStringCompareOptions.CaseInsensitiveSearch, range:searchRange) // 在指定的range内搜索字符串to,模式为大小写不敏感,返回在该range内找到的指定字符串的range..,也即 {Some "8..<10"}
  • 相关阅读:
    HTML5 文件上传
    Vue-Router模式、钩子
    网络基础协议随笔
    Vue-Router基础使用
    vue中mixin的一点理解
    纯css3跑马灯demo
    Charles使用笔记
    提个醒。。。
    本机未装Oracle数据库时Navicat for Oracle 报错:Cannot create oci environment 原因分析及解决方案
    easyUI datagrid 清空
  • 原文地址:https://www.cnblogs.com/summer2012/p/4077498.html
Copyright © 2011-2022 走看看