4 swift 字符串_swift判断字符串包含子字符串 - CSDN
  • Swift字符串去除特殊字符操作

    千次阅读 2019-03-07 11:52:52
    Swift字符串的常用操作 1、去除特殊字符 去除空格和换行 //原始字符串 let str1 = " 我是谁 " let str2 = str1.trimmingCharacters(in: CharacterSet.whitespaces) //打印 print("原始字符:\(str1...

    Swift字符串的常用操作

    1、去除特殊字符

    • 去除空格和换行
    //原始字符串
    let str1 = "  我是谁  "
    let str2 = str1.trimmingCharacters(in: CharacterSet.whitespaces)
    //打印
    print("原始字符:\(str1)")
    print("新的字符:\(str2)")
    
    • 删除指定的字符
    //原始字符串
    let str1 = "<<骆驼祥子>>"
    //删除前后<>
    let characterSet = CharacterSet(charactersIn: "<>")
    let str2 = str1.trimmingCharacters(in: characterSet)
    
    //打印结果
    print("原字符串:\(str1)")
    print("新字符串:\(str2)")
    

    CharacterSet 里各个枚举类型的含义如下:
    controlCharacters:控制符
    whitespaces:空格
    newlines:换行符
    whitespacesAndNewlines:空格换行
    decimalDigits:小数
    letters:文字
    lowercaseLetters:小写字母
    uppercaseLetters:大写字母
    nonBaseCharacters:非基础
    alphanumerics:字母数字
    decomposables:可分解
    illegalCharacters:非法
    punctuationCharacters:标点
    capitalizedLetters:大写
    symbols:符号

    • 替换字符串为空

    去除空格

    //原始字符串
    let str1 = "  我是谁  "
    let str2 = str1.replacingOccurrences(of: " ", with: "")
    //打印
    print("原始字符:\(str1)")
    print("新的字符:\(str2)")
    

    空格替换为#

    //原始字符串
    let str1 = "  我是谁  "
    let str2 = str1.replacingOccurrences(of: " ", with: "#")
    //打印
    print("原始字符:\(str1)")
    print("新的字符:\(str2)")
    

    2、使用正则去除和替换特殊字符

    去除所有的字母

    //原始字符串
    let str1:String = "qwer1234"
    //判断表情的正则表达式
    let pattern = "[a-zA-Z]"
    //替换后的字符串
    let regex = try! NSRegularExpression(pattern: pattern, options: [])
    let str2 = regex.stringByReplacingMatches(in: str1, options: [], range: NSMakeRange(0, str1.count), withTemplate: "")
    //打印结果
    print("原字符串:\(str1)")
    print("新字符串:\(str2)")
    

    可以把这个方法封装一下方便使用

    extension String {
        //使用正则表达式替换
        func pregReplace(pattern: String, with: String,
                         options: NSRegularExpression.Options = []) -> String {
            let regex = try! NSRegularExpression(pattern: pattern, options: options)
            return regex.stringByReplacingMatches(in: self, options: [],
                                                  range: NSMakeRange(0, self.count),
                                                  withTemplate: with)
        }
    }
    

    使用

    //原始字符串
    let str1:String = "qwer1234"
    //判断表情的正则表达式
    let pattern = "[a-zA-Z]"
    //替换后的字符串
    let str2 = str1.pregReplace(pattern: pattern, with: "")
    //打印结果
    print("原字符串:\(str1)")
    print("新字符串:\(str2)")
    
    展开全文
  • Swift 字符串比较/判断

    万次阅读 2017-02-21 13:09:40
    Swift3.0语言教程比较、判断字符串 Swift3.0语言教程比较、判断字符串,在一个程序中字符串很多时,常常会做的操作就是对这些字符串进行比较和判断。本小节将讲解这些内容。 1.不区分大小写比较 字符串比较可以...

    Swift3.0语言教程比较、判断字符串

    Swift3.0语言教程比较、判断字符串,在一个程序中字符串很多时,常常会做的操作就是对这些字符串进行比较和判断。本小节将讲解这些内容。

    1.不区分大小写比较

    字符串比较可以分为:不区分大小写比较、区分大小写比较以及本地化比较三部分。首先我们来看不区分大小写比较,不区分大小写比较顾名思义就是不区分字符串中字母的大小写,即A和a相同。在NSString中使用caseInsensitiveCompare(_:)方法实现这一功能,其语法形式如下:

    func caseInsensitiveCompare(_ string: String) -> ComparisonResult

    其中,string用来指定一个比较的字符串。该方法的返回值为ComparisonResult类型。ComparisonResult是一个枚举类型,包含了以下3个成员:

    q  orderedAscending(-1):左操作数小于右操作数。

    q  orderedSame(0):两个操作数相等。

    q  orderedDescending(1):左操作数大于右操作数。

    【示例1-29】以下将使用caseInsensitiveCompare(_:)方法对字符串进行比较。

    import Foundation

    var a=NSString(string:"Hello")

    var b=NSString(string:"hello")

    var c=NSString(string:"Swift")

    //比较字符串

    print(a.caseInsensitiveCompare(b as String).rawValue)

    print(a.caseInsensitiveCompare(c as String).rawValue)

    print(c.caseInsensitiveCompare(a as String).rawValue)

    运行结果如下:

    0

    -1

    1

    2.区分大小写比较

    有不区分大小写比较,相对的就有区分大小写比较。在NSString中提供了4种方法实现了这种比较,分别为compare(_:)、compare(_:options:)、compare(_:options:range:)和compare(_:options:range:locale:)方法。

    (1)compare(_:)方法就是用来比较字符串的,它需要区分字符串的大小写,其语法形式如下:

    func compare(_ string: String) -> ComparisonResult

    其中,string用来指定一个比较的字符串。

    【示例1-30】以下将使用compare(_:)方法实现字符串的比较。

    import Foundation

    var a=NSString(string:"Hello")

    var b=NSString(string:"hello")

    var c=NSString(string:"Hello")

    //比较字符串

    print(a.compare(b as String).rawValue)

    print(a.compare(c as String).rawValue)

    print(b.compare(a as String).rawValue)

    运行结果如下:

    -1

    0

    1

    (2)compare(_:options:)方法和compare(_:)方法实现的功能类似,它是对字符串进行比较,但是它比compare(_:)方法多了一个mask参数。该参数可以用来指定一个选项标记(这个标记可以作为字符串比较的条件)。在编程中,mask参数最常被设置为以下5种:

    q  caseInsensitive:不区分大小写比较

    q  literal:区分大小写比较

    q  backwards:从字符串末尾开始搜索

    q  anchored:搜索限制范围的字符串

    q  numeric:按照字符串里的数字为依据,算出顺序。例如 Foo2.txt < Foo7.txt < Foo25.txt

    compare(_:options:)方法的语法形式如下:

    func compare(_ string: String, options mask: NSString.CompareOptions = []) -> ComparisonResul

    【示例1-31】以下将使用compare(_:options:)方法实现对字符串的比较。

    import Foundation

    var a=NSString(string:"Hello")

    var b=NSString(string:"hello")

    print(a.compare(b as String, options: NSString.CompareOptions.caseInsensitive).rawValue)    //比较字符串

    运行结果如下:

    0

    (3)compare(_:options:range:)方法和compare(_:options:)方法的功能类似,但是它比compare(_:options:)方法多了一个rangeOfReceiverToCompare参数,此参数可以用来对比较范围进行设置。其语法形式如下:

    func compare(_ string: String, options mask: NSString.CompareOptions = [], range rangeOfReceiverToCompare: NSRange) -> ComparisonResult

    【示例1-32】以下将使用compare(_:options:range:)方法对字符串进行比较。

    import Foundation

    var a=NSString(string:"HEllo")

    var b=NSString(string:"Swift")

    print(a.compare(b as String, options: NSString.CompareOptions.caseInsensitive,range: NSMakeRange(1, 3)).rawValue)                                                                                   //比较字符串

    运行结果如下:

    -1

    (4)compare(_:options:range:locale:)方法和compare(_:options:range:)方法的功能类似,但是它比compare(_:options:range:)方法多了一个locale参数,此参数可以用来设置语言环境。其语法形式如下:

    func compare(_ string: String, options mask: NSString.CompareOptions = [], range rangeOfReceiverToCompare: NSRange, locale: AnyObject?) -> ComparisonResult

    【示例1-33】以下将使用compare(_:options:range:locale:)方法对字符串进行比较。

    import Foundation

    var a=NSString(string:"a")

    var b=NSString(string:"ä")

    var l=Locale.current

    print(a.compare(b as String, options: NSString.CompareOptions.caseInsensitive, range: NSMakeRange(0, 1), locale: l).rawValue)

    运行结果如下:

    -1

    3.本地化比较

    对于本地化比较在NSString中提供了3种方法,分别为:localizedCaseInsensitiveCompare(_:)、localizedStandardCompare(_:)和localizedCompare(_:)。

    (1)localizedCaseInsensitiveCompare(_:)方法为不区分大小写、本地化比较字符串,其语法形式如下:

    func localizedCompare(_ string: String) -> ComparisonResult

    其中,string用来指定一个比较的字符串。

    【示例1-34】以下将使用localizedCaseInsensitiveCompare(_:)方法比较字符串。

    import Foundation

    var a=NSString(string:"Hello")

    var b=NSString(string:"hello")

    var c=NSString(string:"Swift")

    //比较字符串

    print(a.localizedCaseInsensitiveCompare(b as String).rawValue)

    print(a.localizedCaseInsensitiveCompare(c as String).rawValue)

    print(c.localizedCaseInsensitiveCompare(a as String).rawValue)

    运行结果如下:

    0

    -1

    1

    (2)localizedStandardCompare(_:)方法为本地化标准字符串的比较,其语法形式如下:

    func localizedStandardCompare(_ string: String) -> ComparisonResult

    其中,string用来指定一个比较的字符串。

    【示例1-35】以下将使用localizedStandardCompare(_:)方法实现字符串的比较。

    import Foundation

    var a=NSString(string:"Hello")

    var b=NSString(string:"hello")

    print(a.localizedStandardCompare(b as String).rawValue)                                         //比较字符串

    运行结果如下:

    1

    (3)localizedCompare(_:)方法是区分大小写、本地化比较字符串,其语法形式如下:

    func localizedCompare(_ string: String) -> ComparisonResult

    其中,string用来指定一个比较的字符串。

    【示例1-36】以下将使用localizedCompare(_:)方法实现对字符串的比较。

    import Foundation

    var a=NSString(string:"Hello")

    var b=NSString(string:"hello")

    var c=NSString(string:"Hello")

    print(a.localizedCompare(b as String).rawValue)

    print(a.localizedCompare(c as String).rawValue)

    print(b.localizedCompare(a as String).rawValue)

    运行结果如下:

    1

    0

    -1

    4.判断字符串

    在NSString中提供了3种对字符串判断的方法,分别为hasPrefix(_:)、hasSuffix(_:)和isEqual(to:)方法。

    (1)hasPrefix(_:)方法用来判断字符串是否以某一指定字符串开头,其语法形式如下:

    func hasPrefix(_ str: String) -> Bool

    其中,str用来指定一个字符串。

    【示例1-37】以下将判断字符串a是否以"H"、"Hel"和"Hele"开头。

    import Foundation

    var a=NSString(string:"Hello")

    //判断字符串a是否以"H"开头

    if(a.hasPrefix("H")){

        print("a字符串是以H开头的")

    }else{

        print("a字符串不是以H开头的")

    }

    //判断字符串a是否以"Hel"开头

    if(a.hasPrefix("Hel")){

        print("a字符串是以Hel开头的")

    }else{

        print("a字符串不是以Hel开头的")

    }

    //判断字符串a是否以"Hele"开头

    if(a.hasPrefix("Hele")){

        print("a字符串是以Hele开头的")

    }else{

        print("a字符串不是以Hele开头的")

    }

    运行结果如下:

    a字符串是以H开头的

    a字符串是以Hel开头的

    a字符串不是以Hele开头的

    (2)hasSuffix(_:)方法正好和hasPrefix(_:)方法相反,它是用来判断字符串是否以某一指定字符串结尾的,其语法形式如下:

    func hasSuffix(_ str: String) -> Bool

    其中,str用来指定一个字符串。

    【示例1-38】以下将判断字符串a是否以"o"、"Hello"、"allo"结尾。

    import Foundation

    var a=NSString(string:"Hello")

    //判断字符串a是否以"o"结尾。

    if(a.hasSuffix("o")){

        print("a字符串是以o结尾的")

    }else{

        print("a字符串不是以o结尾的")

    }

    //判断字符串a是否以"Hello"结尾。

    if(a.hasSuffix("Hello")){

        print("a字符串是以Hello结尾的")

    }else{

        print("a字符串不是以Hello结尾的")

    }

    //判断字符串a是否以"allo"结尾。

    if(a.hasSuffix("allo")){

        print("a字符串是以allo结尾的")

    }else{

        print("a字符串不是以allo结尾的")

    }

    运行结果如下:

    a字符串是以o结尾的

    a字符串是以Hello结尾的

    a字符串不是以allo结尾的

    (3)isEqual(to:)方法是用来判断字符串是否相等的,其语法形式如下:

    func isEqual(to aString: String) -> Bool

    其中,aString用来指定字符串。

    【示例1-39】以下将判断字符串是否相等。

    import Foundation

    var  a=NSString(string:"Hello")

    var  b=NSString(string:"hello")

    var  c=NSString(string:"Swift")

    var  d=NSString(string:"Hello")

    //判断字符串a和b是否相等

    if(a.isEqual(to: b as String)){

        print("a、b两个字符串相等")

    }else{

        print("a、b两个字符串不相等")

    }

    //判断字符串a和c是否相等

    if(a.isEqual(to: c as String)){

        print("a、c两个字符串相等")

    }else{

        print("a、c两个字符串不相等")

    }

    //判断字符串a和d是否相等

    if(a.isEqual(to: d as String)){

        print("a、d两个字符串相等")

    }else{

        print("a、d两个字符串不相等")

    }

    运行结果如下:

    a、b两个字符串不相等

    a、c两个字符串不相等

    a、d两个字符串相等

    展开全文
  • Swift 字符串和子字符

    Swift 字符串和子字符


    展开全文
  • swift 字符串包含

    万次阅读 2014-12-18 22:01:51
    swift的String类没有contains这样类型的方法来直接判断字符串中是否包含另一段字符串,但是,可以变通的来实现。 直接上代码: if "这是一段字符串".componentsSeparatedByString("字符串").count > 0 { println(...


    swift的String类没有contains这样类型的方法来直接判断字符串中是否包含另一段字符串,但是,可以变通的来实现。

    直接上代码:

    if "这是一段字符串".componentsSeparatedByString("字符串").count > 1 {
        println("包含")
    } else {
        println("不包含")
    }

    简单说一下:

    componentsSeparatedByString方法是将字符串分割成数组,如果分割之后数组元素的数量大于0,说明分割成功了,也就说明原来的字符串中包含后面的字符串。不多解释。


    展开全文
  • iOS Swift字符串截取

    千次阅读 2017-02-22 11:17:25
    Swift字符串截取由三种方式下面我们一次介绍 方式一 根据index进行简单截取 // 声明一个字符串 Swift字符串的类型是String类型 var strTest = "01224312" // 得到第一个字符的index var index = strTest....
  • swift 字符串截取

    2019-09-26 11:47:32
    1.截取某字符串的前10个字符串 let sub1 = str.prefix(10) 2.截取某字符串的后10个字符串 let str1 = str.suffix(10) 也可以换种写法 let index2 = str.index(str.endIndex, offsetBy: -10) let sub4 = str[index2…...
  • Swift 分割字符串与截取字符串

    千次阅读 2017-02-21 11:40:04
    Swift3.0语言教程分割字符串 如果想要快速的创建一个数组,我们可以将字符串进行分割,分割后的内容将会生成一个数组。在NSString中有两个分割字符串的方法,分别为components(separatedBy:)方法和components...
  • //字符串索引 let greeting = "Guten Tag!" greeting[greeting.startIndex] greeting[greeting.index(before: greeting.endIndex)] greeting[greeting.index(after: greeting.startIndex)] let ind.
  • Swift-字符串截取、替换、插入

    千次阅读 2019-01-18 17:40:37
    Swift中关于字符串的截取与OC还是有很大的区别的,要说字符串的截取,就要先说下“范围”,OC中使用的是NSRange函数来指示一个起始位置和长度,而Swift中的范围使用起来就方便得多,有两种形式: 1...5表示闭区间[1...
  • swift 字符串和字符 换行

    千次阅读 2019-05-14 09:26:45
    Swift字符串类型与Foundation的NSString类连接。Foundation还扩展了字符串来公开由NSString定义的方法。这意味着,如果您导入Foundation,您可以在字符串中访问这些NSString方法,而不需要进行强制转换。 单行...
  • 使用Swift去掉字符串中的空格

    千次阅读 2015-09-07 23:32:35
    笔试面试时经常会出这样的问题:从某个字符串中删除多余的空格,因为英文是使用空格进行分词的,而URL中通常会包括非常多的特殊字符,所以这是一种很常用的做法。和OC中一样,在swift中也可以使用NSCharacterSet类来...
  • swift 字符串的截取和拼接

    千次阅读 2016-08-02 18:39:35
    下面为大家介绍一下 swift字符串的截取和拼接例如 下面这个字符串 source = “nofollow”>360安全浏览器 最后需要的结果 —–> 来自360安全浏览器func getSourceStr(source:String?) -> ...
  • swift 4. 字符串

    千次阅读 2016-09-03 17:55:39
    字符串标签:swift2. 用前缀或后缀法比较字符串用hasPrefix和hasSuffix这2个字符串的对象方法,来判断和比较,他们返回boolean值的true或falsely看个例子://申明一个字符数组,后面会讲到 var string1 = [ "Act1:...
  • Swift字符串

    2016-07-05 16:01:36
    字符串不管是Object-C还是Swift还是Java等等其他的语言,都可以说是重点,虽然不难,但是用到的地方却非常多,几乎都是字符串的处理,这一篇我们就来好好说说字符串:创建一个可变字符串:var stringA = "Hello, ...
  • swift 切割字符串

    2019-08-28 20:09:44
    swift字符串切割方法做了更大的扩展, 具体的找到了如下两个方法: targetStr.components(separatedBy: <#T##CharacterSet#>) targetStr.components(separatedBy: <#T##StringProtocol#>) 这两个...
  • swift 字符串String转Int 16进制字符串String转Int var hexi:UInt = UInt(hexS, radix: 16) let n = 14 var st = String(format:"%02X", n) st += " is the hexadecimal representation of \(n)" print(st...
  • Swift字符串再回顾

    2020-05-19 16:12:39
    2020-5-19 Swift字符串再回顾 虽然最近几年一直断断续续的在玩Swift、也用Swift上线了项目,然而一些基础语法还是运用的太少、今天又敲了一遍字符串的基础使用、加深下印象。 ///1、基础字符串 func ...
  • swift 字符串中查找字符位置

    千次阅读 2019-10-23 14:55:03
    let range: Range =“包含所有字符”.range(of: "子字符串")! location 子字符串位置 let location = fixStr.distance(from: fixStr.startIndex, to:range.lowerBound) 应用 let fixStr = "照片需免冠,建议未...
  • &lt;一&gt;字符串OC的字符串是一个对象: 0.NSString(不可变的),NSSMutableString(可变的) 1.获取字符串长度:str.lengthSwift的字符串是一个结构体:... 1.swift字符串支持遍历 2.获取字符串长...
  • Swift - 字符和字符串

    千次阅读 2015-08-30 23:55:59
    Swift使用Character类型代表单个字符,使用String代表字符串字符串表示一个有序的字符集合,例如Hello,word!代表字符串,String也可被当成多个Character的有序集合。 字符串字面量 Swift允许在代码中包含一段预...
1 2 3 4 5 ... 20
收藏数 23,420
精华内容 9,368
关键字:

4 swift 字符串