zoukankan      html  css  js  c++  java
  • 窥探Swift之字符串(String)

      之前总结过Objective-C中的字符串Objective-C精选字符串处理方法》,学习一门新语言怎么能少的了字符串呢。Swift中的String和Objective-C语言中NSString还是区别不小的,Swift中的String又回归了正常状态,使用起来更为方便快捷。本篇博客的主题就是Swift中的字符串类型String,String在Swift中让人省心了不少。今天这篇博客就好好的认识一下Swift中的String。

      一、字符串拷贝

        在Swift中的字符串拷贝直接可以使用=号来操作,这个等号不是指针之间的赋值这么简单。如果将字符串A的值赋给字符串B,那么A和B的的内存地址是不同的,也就是字符串A和字符串B有各自的内存空间。下面的实例就给我们展示了上面的说法:

        1.首先写个输入函数,该函数用于输出字符串的内存地址,代码如下:

    1 //打印变量地址的函数
    2 func printVarAddress(tempString: String){
    3     
    4     var address = String(format: "%p", tempString)
    5     
    6     println(address)
    7     
    8 }

        2. 创建一个字符串变量并赋上初始值,然后再定义一个变量,把上一个变量的值通过=号来赋值给这个新的变量,并调用上面的方法来打印这两个变量的内存地址,如下代码所示:

    var strTemp = "Ludashi"
    
    var strTempCopy = strTemp
    
    printVarAddress(strTemp)  //-- 0x100525d50
    printVarAddress(strTempCopy) //-- 0x1005268a0

        由上面打印的变量地址可以看出,每个变量都有自己的存储地址,也就是对应着OC中的深拷贝。

      二、字符串连接

        在Swift中字符串的连接就简单了许多,一个+号搞定,再也不用NSStringFormat了,下面的代码是在Swift中进行字符串连接所使用的方式,和其他编程语言如PHP等是一样一样的。废话少说直接上代码。

    //=============字符串连接==============
    var myFirstName = "Li"
    
    var mySecondName = "Zelu"
    
    var myName = mySecondName + myFirstName
    
    println(myName) // -- ZeluLi

      三、字符串遍历

        在Swift中的字符串是可以使用for - in 来直接进行遍历的,如下所示:

    //==============字符串遍历==========
    var searchString = "Ludashi"
    
    for tempChar in searchString {
        println(tempChar)
    }

      四、字符串的比较

        字Swift中的字符串间的比较不是使用isEqualToString方法,直接使用==和!=号就可以搞定,是不是瞬间简单了不少呢。应注意的是,在Swift中的Bool类型的值不再是OC中的Yes Or No了,而是false Or ture了。下面的代码段是对两个字符串通过==和!=来进行比较的。

    //字符串比较==与!=
    var myNameTemp = "lizelu"
    
    var myBlogName = "ludashi"
    var boolOne = myNameTemp == myBlogName  // -- false
    
    var boolTwo = myNameTemp != myBlogName  // -- true
    
    println(boolOne)
    
    println(boolTwo)

      五、Swift中常见字符串函数

        1、使用hasPrefix和hasSuffix来判断一个字符串是否为另一个字符串的前缀或者后缀

    1 //判断前缀还是后缀
    2 var isHasPrefixOrSuffix = "我是lizelu"
    3 
    4 var isPrefix =  isHasPrefixOrSuffix.hasPrefix("")
    5 println(isPrefix)   // -- ture
    6 
    7 var isSuffix =  isHasPrefixOrSuffix.hasSuffix("zelu")
    8 println(isSuffix)   // -- ture

        2.字符串长度

        在OC中获取字符串长度是使用length, 而Swift中则是使用count()全局函数,如下:

    //字符串长度
    var strLenght = count(isHasPrefixOrSuffix)
    println(strLenght)  // -- 8 --

        3.字符串插值

        在OC中如果你想往一个字符串中插入一个值的话,那么就得使用字符串的格式化函数了,而在Swift中则使用()就可以了,具体使用方式如下所示:

    1 //字符串插值
    2 var insertToStringValue = 1010101
    3 
    4 var strInserReaultValue = "二进制编码(insertToStringValue)"
    5 
    6 println(strInserReaultValue)  //二进制编码1010101

        4.调用NSString方法

        在Swift中如果想调用NSString所特有的方法时,该怎么办呢?那么就使用as关键字来转换一下类型吧,就是把String类型通过as操作,转换成NSString类型,然后在调用NSString相应的方法(比如要获取一个字符串指定范围内的字符串时,使用NSString的方法就会更为简单一些)。

    1 //String转成NSSting调用NSSting的方法
    2 var stringToNSString = "SwiftWithMe"
    3 
    4 var strNs: NSString = "aaa"
    5 
    6 strNs.length  // -- 3 --
    7 
    8 //就可以掉哟过NSSting的各工种方法了
    9 var strLength = (stringToNSString as NSString).length  // -- 11 --

      今天有关Swift字符串的东西就先到这儿,以后字啊使用Swift做开发实例时,用到Swift字符串时再做补充。

  • 相关阅读:
    arduino链接GY521(MPU6050)模块
    I2C Python Library ITG3205 API
    [翻译]AxureInteractive Prototypes原型设计工具Axure学习第2.3节
    [Java]XML数据的请求和DOM技术解析
    [Linux]VI相关操作
    mysql数据库连接错误问题
    关于管理单元初始化失败的解决方法
    彻底明白Java的IO系统(网上找的,还没看,先放这)
    一个关于C++ Inline关键字的引发的一个错误
    orcale 中日期类型相加的处理
  • 原文地址:https://www.cnblogs.com/ludashi/p/4725018.html
Copyright © 2011-2022 走看看