之前总结过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. 创建一个字符串变量并赋上初始值,然后再定义一个变量,把上一个变量的值通过=号来赋值给这个新的变量,并调用上面的方法来打印这两个变量的内存地址,如下代码所示:

  1. var strTemp = "Ludashi"
  2.  
  3. var strTempCopy = strTemp
  4.  
  5. printVarAddress(strTemp) //-- 0x100525d50
  6. printVarAddress(strTempCopy) //-- 0x1005268a0

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

  二、字符串连接

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

  1. //=============字符串连接==============
  2. var myFirstName = "Li"
  3.  
  4. var mySecondName = "Zelu"
  5.  
  6. var myName = mySecondName + myFirstName
  7.  
  8. println(myName) // -- ZeluLi

  三、字符串遍历

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

  1. //==============字符串遍历==========
  2. var searchString = "Ludashi"
  3.  
  4. for tempChar in searchString {
  5. println(tempChar)
  6. }

  四、字符串的比较

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

  1. //字符串比较==与!=
  2. var myNameTemp = "lizelu"
  3.  
  4. var myBlogName = "ludashi"
  5. var boolOne = myNameTemp == myBlogName // -- false
  6.  
  7. var boolTwo = myNameTemp != myBlogName // -- true
  8.  
  9. println(boolOne)
  10.  
  11. 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()全局函数,如下:

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

    3.字符串插值

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

  1. //字符串插值
  2. var insertToStringValue =
  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字符串时再做补充。

窥探Swift之字符串(String)的更多相关文章

  1. Swift:字符串(String)分割之Substring优雅转换

    认识Substring类型 这是一个全新的类型,看类名像是String的子类,但是大家千万别被误导了,Substring并不是String的子类,这是两个不同的类型,但是它们都继承了StringPro ...

  2. Swift的字符串String是值类型

    根据<The Swift Programming Language>中文版基于Xcode6.1的文章描述: Swift的 String 类型是值类型.如果创建了新的字符串,那么当其进行常量 ...

  3. 窥探Swift系列博客说明及其Swift版本间更新

    Swift到目前为止仍在更新,每次更新都会推陈出新,一些Swift旧版本中的东西在新Swift中并不适用,而且新版本的Swift会添加新的功能.到目前为止,Swift为2.1版本.去年翻译的Swift ...

  4. 汇编窥探Swift String的底层

    String(字符串),是所有编程语言中非常重要的成员,因此非常值得去深入研究.众所周知,字符串的本质是字符序列,由若干个字符组成.比如字符串 "iOS" 由 'i'.'O'.'S ...

  5. iOS -Swift 3.0 -String(字符串常规用法)

    // // ViewController.swift // Swift-String // // Created by luorende on 16/9/10. // Copyright © 2016 ...

  6. [Swift]字符串(String类、NSString类)常用操作

    NS是Cocoa类对象类型的前缀,来源于乔布斯建立的另一家公司--NeXTNSString的使用方法,和Swift语言中的String有很多相似之处. 1.字符串的定义String类 var str1 ...

  7. 窥探Swift编程之错误处理与异常抛出

    在Swift 2.0版本中,Swift语言对其错误处理进行了新的设计,当然了,重新设计后的结果使得该错误处理系统用起来更爽.今天博客的主题就是系统的搞一下Swift中的错误处理,以及看一下Swift中 ...

  8. 窥探Swift之协议(Protocol)和委托代理(Delegate)回调的使用

    协议与委托代理回调在之前的博客中也是经常提到和用到的在<Objective-C中的委托(代理)模式>和<iOS开发之窥探UICollectionViewController(四) - ...

  9. 窥探Swift之类的继承与类的访问权限

    上一篇博客<窥探Swift之别具一格的Struct和Class>的博客可谓是给Swift中的类开了个头.关于类的内容还有很多,今天就来搞一下类中的继承以及类的访问权限.说到类的继承,接触过 ...

随机推荐

  1. C#详解format函数,各种格式化

    一.String Format for Double Digits after decimal point This example formats double to string with fix ...

  2. charles4抓https请求的注意事项

    最近升级charles4.0后发现抓不了https请求了,但很奇怪ssl证书一样,记得以前用3.0就可以,今天仔细研究了一下,发现4.0的ssl代理设置中有一段说明(可能3.0也有但没注意): 直接上 ...

  3. bat获取所有的参数

    bat默认只能获取到1-9个参数,分别用%1 %2 ... %9引用,如果传给bat的参数大于9个,就必须用shift. 工作需要,要写个bat脚本,获取所有的参数,再将所有的参数传给Java,代码如 ...

  4. 命令行操作svn和git和git

    前几天在写代码的时候电脑突然坏掉,老大交代的任务没完成,非常痛恨自己用svn或者git保存代码,相信很多程序员遇到过,硬盘坏掉,存在硬盘中的代码丢失,无法找回的问题,svn和git可谓程序员界的福音, ...

  5. Oracle查询和问题简记

    现在做两个版本的系统,一个用的数据库是Access,另一个就是Oracle了.每个数据库支持的的查询SQL语句都有所区别,这里主要针对Access和Oracle做 记录. 首先贴出遇到问题最多的一条语 ...

  6. 【完全开源】Django多人博客系统——支持MarkDown和tinyMce

    目录 说明 功能 如何使用 说明 这是一个用Django开发的多人博客系统,功能简单,但完全满足公司内部或个人的博客使用需求.支持普通富文本编辑器(tinyMCE)和MarkDown编辑器 由于嫌弃D ...

  7. perl 切换 dnspod 域名记录

    提供域名,dnspod 账户密码(毕竟dns密码比较重要 不能谁 cat一下都可以看到 需要base64加密),原IP,切换目标IP, #!/bin/perl use warnings; use MI ...

  8. xcodebuild编译ipa

    #!/bin/sh # autoBuild.sh # CTest # # Created by Ethan on 14-11-3. # Copyright (c) 2014年 Ethan. All r ...

  9. 安装subversion

    安装subversion需要依赖apr.apr-util.sqlite 下载安装包,放在/usr/file目录 subversion-1.9.4.tar.gz apr-1.5.2.tar.gz apr ...

  10. LibSVM for Python 使用

    经历手写SVM的惨烈教训(还是太年轻)之后,我决定使用工具箱/第三方库 Python libsvm的GitHub仓库 LibSVM是开源的SVM实现,支持C, C++, Java,Python , R ...